hibernate 使用 sql 查询

    技术2022-05-19  30

    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());  } 

    }

     


    最新回复(0)