hibernate HQL查询 2.2
hql(都要在事务中完成)
session.beginTransaction();
session.getTransaction().commit();
session.beginTransaction();
//User指的是类,不是表名 username指的是属性,不是列名
String hql = "from User as u where u.username = 'u1'";
Query query = session.createQuery(hql);
List<User> list = query.list(); for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
} session.getTransaction().commit();
获取不完整对象
String hql = "select username from User";
Query query = session.createQuery(hql);
// 不再是User而是String
List<String> list = query.list(); for(String name : list) {
System.out.println(name);
} String hql = "select id,username,password from User";
Query query = session.createQuery(hql);
List<Object[]> list = query.list(); for(Object[] array : list) {
System.out.println(array[0] + " : " + array[1]);
} //即使把所有属性都写上还是String类型 只有写from User才是User类型 String hql = "from User where id = 1";
Query query = session.createQuery(hql);
//这样写的前提是确保只有一条结果记录
User user = (User) query.uniqueResult();
System.out.println(user.getUsername()); String hql = "select count(*) from User";
Query query = session.createQuery(hql);
// 这样写的前提是确保只有一条结果记录
Long count = (Long) query.uniqueResult();
System.out.println("count:" + count); String hql = "select count(*),max(id) from User";
Query query = session.createQuery(hql);
Object[] count = (Object[]) query.uniqueResult();
System.out.println("count:" + count[0] + " maxId:" + count[1]);
HQL占位符
String hql = "from User as u where u.username = ?";
Query query = session.createQuery(hql);
//hibernate从0开始数
// 方式1
query.setString(0, "u1");
// 方式2,不用考虑数据类型
query.setParameter(0, "jack"); List<User> list = query.list(); for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
HQL引用占位符
String hql = "from User as u where u.username = :name and u.password = :pwd";
Query query = session.createQuery(hql);
// 只能用setParameter
query.setParameter("name", "jack");
query.setParameter("pwd", "123"); List<User> list = query.list(); for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
分页
String hql = "from User";
Query query = session.createQuery(hql); query.setFirstResult(10);
query.setMaxResults(5); List<User> list = query.list(); for(User user : list) {
System.out.println(user.getId() + " : " + user.getUsername());
}
hibernate HQL查询 2.2的更多相关文章
- Hibernate HQL查询:
Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...
- Hibernate HQL查询语句总结
Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...
- 转: Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
- 第六讲(二) Hibernate HQL查询
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibe ...
- Hibernate HQL查询的参数绑定
参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- hibernate HQL查询参数设置
Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: Prepa ...
- Hibernate HQL查询 插入 更新(update)实例
1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...
- Hibernate HQL查询(2)
hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1.查询 一般在Hiber ...
- Hibernate HQL查询(1)
1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql ="from Users"; ...
随机推荐
- oracle decode函数用法
DECODE函数是ORACLE PL/SQL是功能强大的函数之中的一个,眼下还仅仅有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一 ...
- system.io.file创建
在实际开发中,如果用的文件名不能确定位置.或名字.可以使用GUID类来命名函数.Guid 结构标识全局唯一标示符.其NewGuid结构可以初始化一个新历.该方法语法格式如下: public stati ...
- 在Attribute Inspector 上显示自定义的控件的属性
FirstColor 跟 CornerRadious 都是新增的显示属性具体实现方法如下: @property(nonatomic,weak)IBInspectable UIColor *firstC ...
- django1.4.5无法安装MySQLdb1.2.3
解决办法是: yum install python-devel mysql-devel zlib-devel openssl-devel 然后再build.install
- javascript实现的功能--二级联动
<head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" ...
- A Byte of Python 笔记(4)控制流:if、for、while、break、continue
第6章 控制流 3种控制流语句-- if for while 默认pyhon使用ASCII码来解释程序的,默认不支持中文,需要在程序的第一行或者第二行声明编码.官方参考具体参考以下三种方式:1. ...
- 利用python进行数据分析之pandas库的应用(一)
一.pandas的数据结构介绍 Series Series是由一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据索引构成.仅由一组数据可产生最简单的Series. obj=Series([4 ...
- Stack trace对性能的影响
package ceshi; public class ExceptionTest { public long maxLevel = 20; public static void main(Strin ...
- javascript Node操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Oracle Primavera P6 R84单机版安装教程
本教程用于指导Oracle Primavera P6 R84版本的单机版安装过程.P6 R84版本于2014年9月30日发布.其功能较之前版本有较大提升.单机版的安装方式也发生了很大的变化.P6 R8 ...