Hibernate之QBC查询与本地SQL查询
1. QBC查询:
@Test
public void testQBC(){
//1. 创建一个Criteria 对象
Criteria criteria=session.createCriteria(Employee.class); //2. 添加查询条件 :在QBC中,查询条件使用Criterion来表示
// Criterion 可以通过Restrictions的静态方法得到
criteria.add(Restrictions.eq("email", "name4@qq.com"));
criteria.add(Restrictions.between("salary", 3000F, 10000F)); //3. 执行查询
Employee emp=(Employee) criteria.uniqueResult();
System.out.println(emp.getName());
System.out.println(emp.getDept().getName());
}
@Test
public void testQBC3(){
Criteria criteria=session.createCriteria(Employee.class);
// 添加排序
criteria.addOrder(Order.asc("salary"));
criteria.addOrder(Order.desc("email")); // 添加分页
int pageSize=5;
int pageNo=3;
criteria.setFirstResult((pageNo-1)*pageSize)
.setMaxResults(pageSize)
.list(); } @Test
public void testQBC2(){
Criteria criteria=session.createCriteria(Employee.class);
// 统计查询 使用Projection表示,可以由Projections的静态方法得到
criteria.setProjection(Projections.max("salary"));
System.out.println(criteria.uniqueResult());
} @Test
public void testQBC1(){
Criteria criteria=session.createCriteria(Employee.class); //1 AND:使用Conjunction表示
// Conjunction 本身就是一个 Criterion对象
// 且其中还可以添加Criterion对象
Conjunction conjunction=Restrictions.conjunction();
conjunction.add(Restrictions.isNotNull("email"));
conjunction.add(Restrictions.eq("salary", 6000F)); //2 OR: 使用Disjunction表示
Disjunction disjunction=Restrictions.disjunction();
disjunction.add(Restrictions.eq("name", "name6"));
disjunction.add(Restrictions.like("email", "name")); criteria.add(disjunction);
criteria.add(conjunction); Employee emp=(Employee) criteria.uniqueResult(); System.out.println(emp.getName());
System.out.println(emp.getDept().getName());
}
其它关于QBC查询用法,参考Hibernate的操作手册:hibernate-release-4.2.5.Final\documentation\manual\en-US\html_single\index.html
2. 本地SQL查询:
@Test
public void testNativeSQL(){
String sql="insert into department values(?,?)";
Query query=session.createSQLQuery(sql);
query.setInteger(0, 9)
.setString(1, "umendme")
.executeUpdate();
}
同样本地sql查询相关内容也参看操作手册
Hibernate之QBC查询与本地SQL查询的更多相关文章
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...
- Hibernate之QBC检索和本地SQL检索
QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 本地SQL查询来完善HQL ...
- Hibernate(十五):QBC检索、本地SQL检索和HQL删除
QBC检索 QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口. 1)通过Cr ...
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- hibernate将本地SQL查询结果封装成对象
hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...
- hibernate框架学习之数据查询(本地SQL)
本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...
- 本地SQL查询
-------------------siwuxie095 本地 SQL 查询 1.简单介绍 采用 HQL 或 QBC 查询时,Hibernate 生成标准的 SQL 语句, 适用于所有的数据库平台, ...
- QBC检索和本地SQL检索
细说QBC:QBC(Query By Criteria) 查询:这种方式比较面向对象方式,因为是面向对象,所以查询时参数名就是所查询的类的属性名并不是数据库的表的列名重点是有三个描述条件的对象:Res ...
- 【T-SQL基础】01.单表查询-几道sql查询题
概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...
随机推荐
- eclipse运行emulator时,PANIC:Could not open emulator的解决办法
使用eclipse启动emulator的时候,出现PANIC:Could not open emulator,模拟器无法正常的运行. 经过搜索得知,因为我的SDK的环境变量出问题,需要重新配置下环境变 ...
- [HDOJ1827]Summer Holiday(强连通分量,缩点)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827 缩点后统计入度和当前强连通分量中最小花费,然后记录入度为0的点的个数和花费和就行了. /* ━━ ...
- Spring学习8-Spring事务管理
http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...
- 分解成3NF的保持函数依赖的分解算法:
转换成3NF的保持函数依赖的分解算法: ρ={R1<U1,F1>,R2<U2,F2>,...,Rk<Uk,Fk>}是关系模式R<U,F>的一个分解,U= ...
- 新浪实时股票数据接口http://hq.sinajs.cn/list=code
股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁 ...
- poj 2828 Buy Tickets (线段树)
题目:http://poj.org/problem?id=2828 题意:有n个人插队,给定插队的先后顺序和插在哪个位置还有每个人的val,求插队结束后队伍各位置的val. 线段树里比较简单的题目了, ...
- ie下jquery ajax 80020101错误的解决方法
<script language="javascript"> <!-- function checkAll(name,isCheck){ ...
- moment 和ko 绑定msdate格式的日期值(静态text)
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- LA 5846 (计数) Neon Sign
从反面考虑,统计非单色三角形的个数. 如果从一个点出发两条不同颜色的边,那么这三个点一定构成一个非单色三角形. 枚举一个顶点,统计从这个点出发的红边的个数a[i]和蓝边的个数n - 1 - a[i], ...
- BZOJ2151: 种树
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2151 题解:此题=数据备份.喜闻乐见挂链表. 代码: #include<cstdio&g ...