1、查询所有的学生信息:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

2、条件查询:

运算符与对应的英文缩写:

> gt  >=ge  <lt  <=le  ==eq

!=ne  in:in  between and::between

like:like  is not null:isNotNull  

or:or  and:and

(1)eq的运用:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.eq("sex","女"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
sessio

(2)like的运用:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.like("sname","许__"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

3、分页查询:

需要事先设置起始位置和查询的数量。

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.add(Restrictions.eq("sex","女"));
criteria.setFirstResult();
criteria.setMaxResults();
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

4、总记录数的获取:

 public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.setProjection(Projections.rowCount());//聚合函数获得总行数
Long rowNum= (Long) criteria.uniqueResult();
System.out.println(rowNum);
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

5、排序:

升序:

public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.addOrder(Order.asc("studentno"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

降序:

 public static void testSel() {
Session session = HibernateUtils.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria=session.createCriteria(Student.class);
criteria.addOrder(Order.desc("studentno"));
List<Student>list= criteria.list();
System.out.println(list);
transaction.commit();
session.close();
}

5、Criteria 和 DetachedCriteria的区别

Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需Session。

例如下面的条件查询代码写在servlet中,没有与session进行连接:

 String cust_name = request.getParameter("cust_name");
DetachedCriteria dc = DetachedCriteria.forClass(Customer.class);
if(cust_name!=null && !"".equals(cust_name)){
dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
}

最新文章

  1. 使用Zabbix官方模板监控Redis运行状况
  2. python核心编程学习记录之执行环境
  3. JavaScript实现DDoS攻击原理,以及保护措施。
  4. Struts学习总结-02 类型转换
  5. BestCoder Round #61 1002 Game
  6. 【leetcode】Reverse Words in a String
  7. 清除浮动的 why
  8. 夺命雷公狗—angularjs—23—copy拷贝对象
  9. Web中的监听器【Listener】与过滤器【Filter】 实例
  10. CentOS上安装MyCat-MySQL
  11. VS下 dllimport与dllexport作用与区别
  12. Redis的那些最常见面试问题
  13. Mysql Innodb 锁机制
  14. Spark:导入数据到oracle
  15. legend2---开发日志11(如何提高终极开发效率)
  16. Win10安装LoadRunner11
  17. SQL Server对比两字符串的相似度(函数算法)
  18. requests库入门13-会话对象
  19. 【SpringMVC】关于classpath和contextConfigLocation
  20. 【Python】基础练习题-1

热门文章

  1. 使用Dbvisualizer 连接 Elasticsearch
  2. 【转】socket通信-C#实现tcp收发图片音视频等字节流数据
  3. DEVexpress GridControl 属性设置
  4. 实验代码:const* 和 const&amp;
  5. [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级
  6. 利用cv与matplotlib.pyplot读图片与显示图片
  7. 2019 满帮java面试笔试题 (含面试题解析)
  8. redis AbortOnConnectFail
  9. angular创建一个独立弹窗服务
  10. 在safari上,解决fixed失效问题