首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Hibernate施用SQL语句

2012-09-07 
Hibernate使用SQL语句import java.util.Iteratorimport java.util.Listimport java.util.Mapimport org

Hibernate使用SQL语句

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.transform.Transformers;

import com.hibernate.bean.SqlQueryBean;
import com.hibernate.bean.User;
import com.hibernate.util.HibernateUtil;


public class SqlQueryTest {

?public static void main (String [] args){
??
??sqlQueryAddScalar();
??
?}
??
? static void sqlQueryAddEntity(){

???? //获取Hibernate Session对象

???? Session session = HibernateUtil.getSession();

???? //开始事务

???? Transaction tx = session.beginTransaction();

???? //编写SQL语句

???? String sqlString = "select * from user";

???? //以SQL语句创建SQLQuery对象

???? List l = session.createSQLQuery(sqlString)

???????????????????? //将查询ss实体关联的User类

???????????????????? .addEntity("ss",User.class)

???????????????????? //返回全部的记录集

???????????????????? .list();

???? //遍历结果集

???? Iterator it = l.iterator();

???? while (it.hasNext()){

???????? //因为将查询结果与Student类关联,因此返回的是Student集合

???????? User s = (User)it.next();

???????? String a = s.getName();
????????
???????? System.out.println(a);

???? }

???? //提交事务

???? tx.commit();

???? session.close();

?}
?
?static void sqlQueryAddScalar(){
??
??//返回Object[]的遍历
??
??Session session=HibernateUtil.getSession();
??
??Transaction transaction=session.beginTransaction();
??
??String sql="select * from user";
??
??SQLQuery s=(SQLQuery) session.createSQLQuery(sql); //.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)
??
??s.addScalar("id",Hibernate.INTEGER); //列名, 数据类型
??s.addScalar("name",Hibernate.STRING);
??
??List list=s.list();
?
??Object[] objects=(Object[])list.get(0);
?
??System.out.println(objects[0]);
??System.out.println(objects[1]);
??
??//用MAP
??
??SQLQuery ss=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
??
??ss.addScalar("id",Hibernate.INTEGER);
??ss.addScalar("name",Hibernate.STRING);
??
??List list2=ss.list();
??
??Map map = (Map) list2.get(0);
??
??System.out.println(map.get("name"));
??System.out.println(map.get("id"));
??
??//用LIST

??SQLQuery s3=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.TO_LIST);
??
??s3.addScalar("id",Hibernate.INTEGER);
??s3.addScalar("name",Hibernate.STRING);
??
??List list3=s3.list();
?
??List list4=(List)list3.get(0);
?
??System.out.println(list4.get(0));
??System.out.println(list4.get(1));
??
??//用自定义的bean
??
??SQLQuery e=(SQLQuery) session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(SqlQueryBean.class));
??
??e.addScalar("id",Hibernate.INTEGER);
??e.addScalar("name",Hibernate.STRING);
??
??List r=e.list();
?
??SqlQueryBean sqb=(SqlQueryBean)r.get(0);
?
??System.out.println(sqb.getId());
??System.out.println(sqb.getName());
??}
?

}

热点排行