关于Hibernate学习记录

持久层框架Hibernate有三种查询方式:

分别是:HQL(面向对象查询)、Criteria、SQL

具体使用:

1、Criteria:该查询采用面向对象方式封装查询条件,又称为对象查询;就是对SQL 语句进行封装,采用对象的方式来组合各种查询条件,由Hibernate 自动产生SQL 查询语句。

  • 限制结果集内容 :一个单独的查询条件是org.hibernate.criterion.Criterion 接口的一个实例,org.hibernate.Criteria对SQL进行封装。Restrictions类 定义了获得某些内置Criterion类型的工厂方法,org.hibernate.criterion.Restrictions可以设定多种查询条件:
限定查询条件:
  • criteria.add(Restrictions.isNull("parentId"));// parentId为空
  • criteria.add(Restrictions.gt("age", new Integer(20)));// gt(great than):大于
  • criteria.add(Restrictions.lt("age", new Integer(40)));// lt(less than):小于
  • criteria.add(Restrictions.like("account",account,MatchMode.ANYWHERE));
  • criteria.addOrder(Order.asc("seqNum")); // 根据seqNum从小到达排序,逆序则使用desc()
限定查询结果数量:
  • criteria.setFirstResult(51);<span style="white-space:pre">	</span>//  起始条
  • criteria.setMaxResults(50);<span style="white-space:pre">	</span>//  条数
获取结果:
  • List<User> result= criteria.list();

使用MatchMode:

MatchMode.START:字符串在最前面的位置.相当于"like 'key%'"
MatchMode.END:字符串在最后面的位置.相当于"like '%key'"
MatchMode.ANYWHERE:字符串在中间匹配.相当于"like '%key%'"
MatchMode.EXACT:字符串精确匹配.相当于"like 'key'"

你可能感兴趣的:(关于Hibernate学习记录)