SSH与SSM学习之hibernate13——HQL查询
来源:互联网 发布:超级淘宝店txt下载 编辑:程序博客网 时间:2024/06/11 12:51
- SSH与SSM学习之hibernate13HQL查询
- 一hibernate查询说明
- 二HQL查询
- 三基本查询
- 1 示例代码
- 2 查询结果
- 四条件查询条件直接写死
- 1 示例代码
- 2 查询结果
- 五条件查询使用 占位符
- 1 示例代码
- 2 查询结果
- 六条件查询使用 命名占位符
- 1 示例代码
- 2 查询结果
- 七分页查询
- 1 示例代码
- 2 查询结果
SSH与SSM学习之hibernate13——HQL查询
一、hibernate查询说明
hibernate查询,主要使用以下三种
HQL查询-hibernate Query Language(主要用于多表查询,但不复杂时使用)
Criteria查询(主要用于单表条件查询)
原生SQL查询(复杂的业务查询)
二、HQL查询
HQL查询-hibernate Query Language(主要用于多表查询,但不复杂时使用)
Hibernate独家查询语言,属于面向对象的查询语言
三、基本查询
这个基本查询是查询全部的
3.1 示例代码
/** * HQL基本查询 */@Testpublic void qhlBaseDemo(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------基本查询--------------- //查询全部,如果User类有不能唯一确定,那么需要完整类名 String sql = "from User"; Query query = session.createQuery(sql); //多个结果可以使用list() List<User> users = query.list(); //如果是一个唯一的结果,那么可以使使用 //query.uniqueResult(); //打印集合 System.out.println(users); //----------------------------------------- //5.关闭资源 session.close();}
3.2 查询结果
Hibernate: select user0_.id as id1_0_, user0_.name as name2_0_, user0_.age as age3_0_ from tb_user2 user0_[User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}, User{id=4, name='mingge', age=20}, User{id=5, name='xx', age=99}, User{id=6, name='wiming', age=20}]
四、条件查询,条件直接写死
4.1 示例代码
/** * HQL条件查询,条件直接写死 */@Testpublic void qhlConditionDemo1(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //查询全部,如果User类有不能唯一确定,那么需要完整类名 //这里id是User类的id String sql = "from User where id = 1"; Query<User> query = session.createQuery(sql); //如果是一个唯一的结果,那么可以使使用 User user = query.uniqueResult(); //打印 System.out.println(user); //----------------------------------------- //5.关闭资源 session.close();}
4.2 查询结果
Hibernate: select user0_.id as id1_0_, user0_.name as name2_0_, user0_.age as age3_0_ from tb_user2 user0_ where user0_.id=1User{id=1, name='小明', age=20}
五、条件查询,使用 ?占位符
5.1 示例代码
/** * HQL条件查询,使用 ?占位符 */@Testpublic void qhlConditionDemo2(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //查询全部,如果User类有不能唯一确定,那么需要完整类名 //这里id是User类的id String sql = "from User where id = ?"; Query<User> query = session.createQuery(sql); //添加参数,下标从0开始 query.setParameter(0,1); //如果是一个唯一的结果,那么可以使使用 User user = query.uniqueResult(); //打印 System.out.println(user); //----------------------------------------- //5.关闭资源 session.close();}
5.2 查询结果
Hibernate: select user0_.id as id1_0_, user0_.name as name2_0_, user0_.age as age3_0_ from tb_user2 user0_ where user0_.id=?User{id=1, name='小明', age=20}
六、条件查询,使用 命名占位符
6.1 示例代码
/** * HQL条件查询,使用 命名占位符 */@Testpublic void qhlConditionDemo3(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //查询全部,如果User类有不能唯一确定,那么需要完整类名 //这里id是User类的id String sql = "from User where id = :uid"; Query<User> query = session.createQuery(sql); //添加参数 query.setParameter("uid",1); //如果是一个唯一的结果,那么可以使使用 User user = query.uniqueResult(); //打印 System.out.println(user); //----------------------------------------- //5.关闭资源 session.close();}
6.2 查询结果
Hibernate: select user0_.id as id1_0_, user0_.name as name2_0_, user0_.age as age3_0_ from tb_user2 user0_ where user0_.id=?User{id=1, name='小明', age=20}
七、分页查询
7.1 示例代码
/** * HQL分页 */@Testpublic void qhlPageDemo(){ //1.创建session Session session = HibernateUtils.openSession(); //------------------条件查询--------------- //查询全部,如果User类有不能唯一确定,那么需要完整类名 //这里id是User类的id String sql = "from User"; Query<User> query = session.createQuery(sql); //从第0条开始 query.setFirstResult(0); //查询3条数据 query.setMaxResults(3); List<User> users = query.list(); //打印 System.out.println(users); //----------------------------------------- //5.关闭资源 session.close();}
7.2 查询结果
Hibernate: select user0_.id as id1_0_, user0_.name as name2_0_, user0_.age as age3_0_ from tb_user2 user0_ limit ?[User{id=1, name='小明', age=20}, User{id=2, name='xiaoming', age=19}, User{id=3, name='mingming', age=22}]
阅读全文
0 0
- SSH与SSM学习之hibernate13——HQL查询
- SSH与SSM学习之hibernate14——Criteria查询
- SSH与SSM学习之hibernate21——离线查询
- SSH与SSM学习之hibernate15——SQL原生查询
- SSH与SSM学习之hibernate04——Configuration
- SSH与SSM学习之hibernate05——SessionFactory
- SSH与SSM学习之hibernate06——Session
- SSH与SSM学习之hibernate07——Transaction
- SSH与SSM学习之hibernate25——批量抓取
- SSH与SSM学习之Struts206——参数获取
- SSH与SSM学习之Struts211——拦截器
- SSH与SSM学习之Struts212——标签
- SSH与SSM学习之Spring15——cglib代理
- SSH与SSM学习之SSH整合01——SSH整合原理和导包
- SSH与SSM学习之SSH整合04——Struts2与Spring整合
- SSH与SSM学习之SSH整合06——Hibernate与Spring整合
- SSH与SSM学习之SSH整合02——单独配置Spring容器
- SSH与SSM学习之SSH整合03——单独配置Struts2
- 夜间模式1
- WIN10 EDGE浏览器通知的关闭
- OFO和摩拜共享单车
- Java反射初探
- 向mysql数据库中插入大文本
- SSH与SSM学习之hibernate13——HQL查询
- 模态对话框和非模态对话框区别
- beego:orm使用sqlite_3
- 两个字符串A,B,求B在A中首次出现的位置,如果B不在A中返回-1.
- Eclipse与MyEclipse之黑色主题
- 安卓中自定义View圆形和拖动圆、跟随手指拖动
- 泰勒公式
- 浮点类型
- HDU 6216 A Cubic number and A Cubic Number