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. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)——动态SQL 如果使用JDBC或者其他框架,很多时候需要你根据需求手动拼装SQL语句,这是一件非常麻烦的事情.MyBatis提供了对SQL语句动态的组装能力,而且他只有 ...

  2. php匹配字符串中大写字母的位置

    变量名用的是驼峰,数据库中字段中的是下划线,现在想把userId等变量批量转换成user_id,怎么样获取大写字母在字符串中的位置?echo strtolower(preg_replace('/((? ...

  3. 转 开启“大数据”时代--大数据挑战与NoSQL数据库技术 iteye

    一直觉得“大数据”这个名词离我很近,却又很遥远.最近不管是微博上,还是各种技术博客.论坛,碎碎念大数据概念的不胜枚举. 在我的理解里,从概念理解上来讲,大数据的目的在于更好的数据分析,否则如此大数据的 ...

  4. [原创]Scala学习:关于变量(val,var,类型推断)

    1.常量定义:  val val 类似于java中的final变量.一旦初始化了,val就不能再被赋值 val megs = "hello world" 2.变量的定义: var ...

  5. [原创]java WEB学习笔记08:HttpServletRequest & ServletRequest

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. 广义表(C++实现)

    广义表是非线性结构,其定义是递归的. 以下给出几种简单的广义表模型: 由上图我们可以看到,广义表的节点类型无非head.value.sub三种,这里设置枚举类型,利用枚举变量来记录每个节点的类型: e ...

  7. 最短路N题Tram SPFA

     #include <algorithm>#include <queue>#include <cstdio>#include <cstdlib>#inc ...

  8. mac活动监视器闪退

    输入:rm -rf ~/Library/LaunchAgents/com.apple.Yahoo.plist即可!

  9. TMS scripter使用心得

    TMS scripter提供了在delphi应用程序中使用pascal 脚本的能力.TMS scripter同时提供了一个工具SSImport.exe,用来把打算在应用程序中使用的类自动生成wrape ...

  10. Delpih - Format

    Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明:function Format(const Format: ...