HQL 实用技术

 1.Hibernate查询方式
   1.get|load(class,id):OID查询
   2.HQL(Hibernate Query Lanage):HQL查询
   3.QBC(Query By Criteria):Criteria查询
   4.原生SQL查询(Native Sql):使用Hibernate来执行sql语句
   5.命名查询:在映射文件中定义字符串形式的查询语句
2.Hibernate查询操作
     2.1、HQL:(update delete select)
     HQL查询示例:
     1.获得Session
     Session session = HibernateSessionFactory.getSession();
     2.编写hql
     String hql = "from Dept";
     3.通过Session创建Query对象
     Query query = session.createQuery(hql);
     4.通过Query对象执行hql查询
     List<Dept> list = query.list();
     for(Dept dept:list){
     System.out.println(dept.getDname());
     }
     5.关闭Session
     session.close();
     eg:
     1.不带条件查询
     String hql = "from Book"
     Query query = session.createQuery(hql);
     2.带条件查询
     String hql = "from Book where bookName=?"
     Query query = session.createQuery(hql);
     query.setString(0,"Oracle");
     query.setParameter(0,"Oracle");
     3.投影查询
     3.1:只查询对象的某个属性 封装指定类型集合
     Query query = session.createQuery("select name from Users");
     List<String> names = query.list();
     3.2:查询对象的多个属性  封装Object数组集合
     Query query = session.createQuery("select name,pwd from Users");
     List<Object[]> users = query.list();
     3.3:查询对象的多个属性 封装成对象 在pojo中提供相应的构造函数
     Query query = session.createQuery("select new Users(name,pwd) from Users");
     List<Users> users = query.list();
     4、查询绑定参数的方式
      按参数位置绑定  
     根据数据类型使用set方法(下标,参数值)
      按参数名绑定
     使用setParameter(参数名,参数值)
      使用对象作为方法参数进行查询
     setProperties(对象名);
     
 
原文地址:https://www.cnblogs.com/QQW-HH/p/7642832.html