Hibernate查询技术
来源:互联网 发布:淘宝抢购网 编辑:程序博客网 时间:2024/06/16 08:57
- Hibernate查询方式简介
- HQL语法查询
- HQL简介
- HQL使用过程
- Query接口
- HQL语法
- HQL高级查询
- QBC语句查询
- QBC查询
- QBC查询条件
- 样例查询
- QBC立即获取关联对象
- QBC统计
- QBC分组统计
- 原生SQL查询
- hibernate查询方法选择的建议
- HQL语法查询
Hibernate查询方式简介
除了可以通过Session接口提供get()和load()方法获取指定ID的实体对象外,Hibernate提供了丰富的查询方式供开发者灵活应用,常见的查询方式有HQL、Criteria Query查询和原生SQL语句查询方式。
HQL语法查询
HQL简介
Hibernate官方提供的类似于SQL语言语法的面向对象数据查询方式,HQL功能强大,目前不仅仅支持查询语句,也支持更新和删除操作。
HQL使用过程
1.获取Hibernate的Session对象 2.调用session.createQuery(String hql)方法获取Query对象 3.调用Query对象的相关方法执行hql语句 4.Hibernate对hql语句进行解析,生成对应的SQL语句 5.执行SQL语句,对执行结果进行解析并返回
@Test public void testHQL(){ //编写hql语句 String hql = "from Employee"; //调用session.createQuery(String hql)方法获取Query对象 Query query = session.createQuery(hql); //调用Query对象的相关方法执行hql语句 List<Employee> list = query.list(); }
Query接口
1. org.hibernate.Query2. 通过session.createQuery(String hql)获取Query接口的实例3. 与session.load()和session.get()相比,它提供了更为强大的查询功能如:Hibernate通用的分页实现、参数绑定、返回可滚动的结果集等
HQL语法
1. from语句的使用
1. from为HQL关键字,HQL关键字不区分大小写2. 注意的是Department不是表名,而是类名该HQL的作用类似于select * from dept;
/** * from语句的使用 */@Testpublic void testHQL(){ //编写hql语句 String hql = "from Department"; //调用session.createQuery(String hql)方法获取Query对象 Query query = session.createQuery(hql); //调用Query对象的相关方法执行hql语句 List<Department> list = query.list();}
2. 查询指定的属性
select dname,dname from Department其中查询出的每一行记录都是一个数组
/** * 查询指定属性的语句 */@Testpublic void testQuery01(){ String hql = "select deptno,dname from Department"; Query query = session.createQuery(hql); //注意此时返回的不是Department对象,而是Object[]数组 //在本例中每一个Object[]中有两个元素,分别是deptno以及对应的dname List<Object[]> list = query.list();}
也可以将指定的记录封装为对象,需要在Department类中定义对应的有参构造方法,一定注意定义完构造方法后,一定也为该类提供无参构造方法。
/** * 查询指定属性的语句 */@Testpublic void testQuery02(){ String hql = "select new Department( deptno,dname) from Department"; Query query = session.createQuery(hql); List<Department> list = query.list();}
3. 聚合函数
4. 聚合函数
5. 筛选查询结果
6. delete语句
7. update语句
HQL高级查询
1. 连接查询
1.1 隐式连接查询
1.2显式连接查询
2. HQL分页查询语句
3. 立即抓取关联对象
4. 参数绑定
5. 命名参数
6. 命名查询
QBC语句查询
QBC查询
- Query by Criteria
以更加面向对象的方式进行数据库查询操作
@Testpublic void testCriteria(){ Criteria c = session.createCriteria(Employee.class); List<Employee> list = c.list(); for(Employee emp : list){ System.out.println(emp); }}
QBC查询条件
1. Criteria查询的查询条件由Criterion接口的某一个实现类实现,通过Criteria对象的add(Criterion c)方法添加查询条件。2. Restrictions类提供创建各种查询条件(Criterion)对象的方法
@Test public void testCriterion(){ Criteria c = session.createCriteria(Employee.class); c.add(Restrictions.between("sal",3000,5000)); c.add(Restrictions.isNotNull("comm")); c.add(Restrictions.like("ename","张",MatchMode.ANYWHERE)); c.addOrder(Order.asc("sal")); c.addOrder(Order.desc("hiredate")); c.setFirstResult(0).setMaxResults(10); List<Employee> list = c.list(); }
样例查询
1. 未完待续2. 阿斯蒂芬
这里写代码片
QBC立即获取关联对象
QBC统计
QBC分组统计
原生SQL查询
hibernate查询方法选择的建议
阅读全文
0 0
- Hibernate查询技术
- Hibernate 查询技术
- Hibernate 数据库分页查询技术
- Hibernate的查询与更新技术
- Hibernate查询和连接池技术
- Hibernate查询技术之HQL语句
- hibernate高级查询技术之“HQL和QBC”的区别
- 技术总结(四)-Hibernate 多表查询
- hibernate查询
- Hibernate 查询
- hibernate查询
- HIbernate 查询
- HIbernate 查询
- HIbernate 查询
- HIBERNATE查询
- Hibernate查询
- Hibernate查询
- Hibernate查询
- ArchLinux使用HP打印机
- import javax.servlet.http.HttpSession;异常
- Opencv中矩阵排序sort函数
- C#的XML解析
- 选择困难不用慌,思维导图帮你忙!
- Hibernate查询技术
- 股票利息
- Android中PopupWindow结合项目讲解
- Windows 下Npm和NodeJS升级
- hdu 5713 图去多少条边变为指定连通块 dp ...
- unity timeline使用手册
- ADO.NET
- 例题6-18 雕塑(Sculpture, ACM/ICPC NWERC 2008, UVa12171)
- Jq表单智能校验(Jq查找和事件处理)