HQL 实用技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(对象名);
     
 

以上是关于HQL 实用技术的主要内容,如果未能解决你的问题,请参考以下文章

HQL 实用技术

Hibernate=====HQL实用技术

HQL实用技术

HQL 是什么意思?

Hibernate Hql 怎么在模糊查询字母时忽略大小写?

如果让hibernate的hql语句不输出"?",输出具体的参数