hibernate HQL查询
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查询的更多相关文章
- 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"; ...
随机推荐
- 5.Django数据库配置
Django默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver需要安装第三方的支持 配置Django数据库:\hello_django\hello ...
- make编译一
在C和C++中,首先要把源文件编译成中间代码文件,在windows下就是obj文件,linux下就是.o文件:object file.这个动作叫做编译,然后再把大量的object file合成执行文件 ...
- linux c编程:信号(五) sigsuspend
更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞.使用这种技术可以保护不希望由信号中断的代码临界区.如果希望对一个信号解除阻塞,然后pause等待以前被阻塞的信号发生,则又将如何呢?假定信 ...
- HTML 5 本地存储
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- js阻止a链接
<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- WPF之基础概念
一:App环境承载 我们都知道Console和WinForm程序的入口都是Main函数,WPF同样也不例外,好了,我们就新建一个WPF应用程序,VS会给我们自动生成一个MainWindow.xaml和 ...
- 什么是DDOS攻击?怎么防御?
一.什么是DDOS? DDOS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Servic ...
- Android 4.4 U盘挂载【转】
本文转载自:https://blog.csdn.net/mill_li/article/details/50134301 在Android4.4系统下,ES文件浏览器读取不到U盘,但是在设置-> ...
- poj 1028 Web Navigation 【模拟题】
题目地址:http://poj.org/problem?id=1028 测试样例: Sample Input VISIT http://acm.ashland.edu/ VISIT http://ac ...
- 算法(Algorithms)第4版 练习 1.3.7
package com.qiusongde; import java.util.Iterator; import java.util.NoSuchElementException; import ed ...