Java软件开发基础知识梳理之(7)------Hibernate查询数据
来源:互联网 发布:如何更改淘宝店铺名称 编辑:程序博客网 时间:2024/05/17 21:57
一、查询数据的几种方式
1 通过Session.get()和Session.load()根据id获取单个实体对象
2 通过Query接口使用HQL查询数据,如
Session session = HibernateSessionFactory.getSession();
Criteria criteria = session.createCriteria(PE_Contact.class);
criteria.add(Restrictions.gt("id", 10));
criteria.add(Restrictions.like("firstName", "h%"));
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
3 使用Criteria进行查询
4 使用DetachedCriteria进行查询,如
@SuppressWarnings("unchecked")
@Test
public void queryDataWithDetachedCriteria(){
Session session = HibernateSessionFactory.getSession();
DetachedCriteria detachedCriteria = creatDetachedCriteriaForPeContact();
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
private DetachedCriteria creatDetachedCriteriaForPeContact(){
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(PE_Contact.class);
detachedCriteria.add(Restrictions.gt("id", 10));
detachedCriteria.add(Restrictions.like("firstName", "h%"));
return detachedCriteria;
}
5 原生SQL查询
public void queryDataWithNativeSql(){
Session session = HibernateSessionFactory.getSession();
Query query = session.createSQLQuery("select * from t_contact where id > ?");
query.setParameter(0, 10);
List<PE_Contact> resultList = query.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
6 命名查询
7 QBE(Query By Example)例子查询方式,如
public void queryDataByExample(){
Session session = HibernateSessionFactory.getSession();
PE_Contact pe_Contact = new PE_Contact();
pe_Contact.setFirstName("ksg80ru2kb");
Criteria criteria = session.createCriteria(PE_Contact.class);
criteria.add(Example.create(pe_Contact));
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
1 通过Session.get()和Session.load()根据id获取单个实体对象
2 通过Query接口使用HQL查询数据,如
Session session = HibernateSessionFactory.getSession();
Criteria criteria = session.createCriteria(PE_Contact.class);
criteria.add(Restrictions.gt("id", 10));
criteria.add(Restrictions.like("firstName", "h%"));
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
3 使用Criteria进行查询
4 使用DetachedCriteria进行查询,如
@SuppressWarnings("unchecked")
@Test
public void queryDataWithDetachedCriteria(){
Session session = HibernateSessionFactory.getSession();
DetachedCriteria detachedCriteria = creatDetachedCriteriaForPeContact();
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
private DetachedCriteria creatDetachedCriteriaForPeContact(){
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(PE_Contact.class);
detachedCriteria.add(Restrictions.gt("id", 10));
detachedCriteria.add(Restrictions.like("firstName", "h%"));
return detachedCriteria;
}
5 原生SQL查询
public void queryDataWithNativeSql(){
Session session = HibernateSessionFactory.getSession();
Query query = session.createSQLQuery("select * from t_contact where id > ?");
query.setParameter(0, 10);
List<PE_Contact> resultList = query.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
6 命名查询
7 QBE(Query By Example)例子查询方式,如
public void queryDataByExample(){
Session session = HibernateSessionFactory.getSession();
PE_Contact pe_Contact = new PE_Contact();
pe_Contact.setFirstName("ksg80ru2kb");
Criteria criteria = session.createCriteria(PE_Contact.class);
criteria.add(Example.create(pe_Contact));
List<PE_Contact> resultList = criteria.list();
System.out.println("recordNum = " + resultList.size());
System.out.println(resultList);
session.close();
}
0 0
- Java软件开发基础知识梳理之(7)------Hibernate查询数据
- Java软件开发基础知识梳理之(8)------Hibernate并发控制
- Java软件开发基础知识梳理之(9)------Hibernate抓取策略
- Java软件开发基础知识梳理之(10)------Hibernate二级缓存
- Java软件开发基础知识梳理之(5)------Hibernate N + 1产生原因及解决办法
- Java软件开发基础知识梳理之(1)------Oracle索引
- Java软件开发基础知识梳理之(6)------事务相关知识点
- Java软件开发基础知识梳理之(11)------Java中的GC操作及相关概念
- Java软件开发基础知识梳理之(3)------JDCB操作数据库性能优化策略
- Java软件开发基础知识梳理之(4)------HashTable与HashMap区别
- Java软件开发基础知识梳理之(2)------动态创建PreparedStatement解决SQL中带的in条件
- 软件开发之技能梳理
- Java基础知识梳理
- java基础知识梳理
- Java基础知识梳理
- Java基础知识梳理--线程
- Java基础知识梳理--IO
- Java基础知识梳理--泛型
- httpd.exe占用100%CPU
- UTL_FILE.FOPEN的用法
- 宽表和窄表的建设该如何选择
- 堆栈
- IPC通信:Posix共享内存1
- Java软件开发基础知识梳理之(7)------Hibernate查询数据
- java方法重载 的解释
- c++ 字符 数值拼接
- Dialog基本使用
- 嗯哼哼哼
- SQL的Join
- 三维旋转矩阵的计算
- HibernateTemplate与HibernateDaoSupport详解
- BULK INSERT如何将大量数据高效地导入SQL Server