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查询的更多相关文章

  1. Hibernate HQL查询:

    Hibernate HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查 ...

  2. Hibernate HQL查询语句总结

    Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...

  3. 转: Hibernate HQL查询 插入 更新(update)实例

    1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...

  4. 第六讲(二) Hibernate HQL查询

    HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibe ...

  5. Hibernate HQL查询的参数绑定

    参数绑定: Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: ...

  6. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  7. hibernate HQL查询参数设置

    Hibernate中对动态查询参数绑定提供了丰富的支持,那么什么是查询参数动态绑定呢?其实如果我们熟悉传统JDBC编程的话,我们就不难理解查询参数动态绑定,如下代码传统JDBC的参数绑定: Prepa ...

  8. Hibernate HQL查询 插入 更新(update)实例

    1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...

  9. Hibernate HQL查询(2)

    hql是面向对象查询,格式:from + 类名 + 类对象 + where + 对象的属性 sql是面向数据库表查询,格式:from + 表名 + where + 表中字段 1.查询 一般在Hiber ...

  10. Hibernate HQL查询(1)

    1. 查询整个映射对象所有字段 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段           String hql ="from Users";   ...

随机推荐

  1. 5.Django数据库配置

    Django默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver需要安装第三方的支持 配置Django数据库:\hello_django\hello ...

  2. make编译一

    在C和C++中,首先要把源文件编译成中间代码文件,在windows下就是obj文件,linux下就是.o文件:object file.这个动作叫做编译,然后再把大量的object file合成执行文件 ...

  3. linux c编程:信号(五) sigsuspend

    更改进程的信号屏蔽字可以阻塞所选择的信号,或解除对它们的阻塞.使用这种技术可以保护不希望由信号中断的代码临界区.如果希望对一个信号解除阻塞,然后pause等待以前被阻塞的信号发生,则又将如何呢?假定信 ...

  4. HTML 5 本地存储

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  5. js阻止a链接

    <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. WPF之基础概念

    一:App环境承载 我们都知道Console和WinForm程序的入口都是Main函数,WPF同样也不例外,好了,我们就新建一个WPF应用程序,VS会给我们自动生成一个MainWindow.xaml和 ...

  7. 什么是DDOS攻击?怎么防御?

    一.什么是DDOS? DDOS是英文Distributed Denial of Service的缩写,意即"分布式拒绝服务",那么什么又是拒绝服务(Denial of Servic ...

  8. Android 4.4 U盘挂载【转】

    本文转载自:https://blog.csdn.net/mill_li/article/details/50134301 在Android4.4系统下,ES文件浏览器读取不到U盘,但是在设置-> ...

  9. poj 1028 Web Navigation 【模拟题】

    题目地址:http://poj.org/problem?id=1028 测试样例: Sample Input VISIT http://acm.ashland.edu/ VISIT http://ac ...

  10. 算法(Algorithms)第4版 练习 1.3.7

    package com.qiusongde; import java.util.Iterator; import java.util.NoSuchElementException; import ed ...