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

  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. localstroge与cookie的区别

    HTML5本地存储是一种让网页可以把键值对存储在用户浏览器客户端的方法.像Cookie一样,这些数据不会因为你打开新网站,刷新页面,乃至关闭你的浏览器而消失. 而与Cookie不同的时,这些数据不会每 ...

  2. PendingIntent详解

    Intent是一个意图,一个描述了想要启动一个Activity.Broadcast或是Service的意图.它主要持有的信息是它想要启动的组件(Activity.Broadcast或是Service) ...

  3. java实现的Trie树数据结构

    近期在学习的时候,常常看到使用Trie树数据结构来解决这个问题.比方" 有一个1G大小的一个文件.里面每一行是一个词.词的大小不超过16字节,内存大小限制是1M. 返回频数最高的100个词. ...

  4. ceph启动脚本

    放在/etc/init.d/目录下,用法如下: root@u253:~# /etc/init.d/ceph === mon.a === usage: /etc/init.d/ceph [options ...

  5. MSSQL常用函数大全

    一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错. 2.CHA ...

  6. 关于ASP控件对象的一些简单操作

    在线人数 Application.Lock(); Application[).ToString(); Application.UnLock(); Label1.Text = Application[& ...

  7. Penalty

    Penalty时间限制:1000 ms | 内存限制:65535 KB难度:2描述As is known to us, the penalty is vitally important to comp ...

  8. Asp.net 网站发布之文件系统方式

    1.选中项目右键→发布方式选[文件系统]→点击发布 2.打开[Internet 信息服务(IIS)管理器] 默认网站(Default Web Site)→添加应用程序 填写[别名],[物理路径]选择上 ...

  9. python实现进度条

    先说一下文本系统的控制符: \r: 将光标移动到当前行的首位而不换行: \n: 将光标移动到下一行,并不移动到首位: \r\n: 将光标移动到下一行首位. 环境: root@ubuntu16:/ale ...

  10. poj 2007 Scrambled Polygon 极角排序

    /** 极角排序输出,,, 主要atan2(y,x) 容易失精度,,用 bool cmp(point a,point b){ 5 if(cross(a-tmp,b-tmp)>0) 6 retur ...