1、初始数据

@Test
public void test01() {
Session session = null; try {
session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); for (int i = 0; i < 100; i++) {
book entity = new book();
entity.setBookCode("book-code-" + i);
entity.setBookname("book-name" + i);
entity.setPrice(i);
session.save(entity);
}
session.getTransaction().commit();
} catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

2、查询对象

@Test
public void test02() {
Session session = null;
// form 对象名 非 表名
String sql = " from book ";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql);
List<book> list = (List<book>) query.list(); for (book b : list) {
System.out.println(b);
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

3、查询单字段

@Test
public void test03() {
/*
* 查询单字段
*/
Session session = null; String sql = " select bookname from book ";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql);
List<String> list = (List<String>) query.list(); for (String b : list) {
System.out.println(b);
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

4、查询指定字段

	@Test
public void test04() {
/*
* 查询多字段,且指定条数Object[]
*/
Session session = null; String sql = " select bookname,bookCode from book ";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql);
// 指定5条
query.setMaxResults(5);
List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) {
System.out.println(b[0] + "," + b[1]); } } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

5、返回Map对象

@Test
public void test05() {
/*
* 查询多字段,且指定Map
*/
Session session = null; String sql = " select new Map(bookname,bookCode) from book ";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql); query.setMaxResults(5);
List<Map> list = (List<Map>) query.list(); for (Map b : list) { System.out.println((String) b.get("0") + ","
+ (String) b.get("1"));
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

6、序列化参数

6.1、

@Test
public void test06() { Session session = null; String sql = " select bookname,bookCode from book where book_id>:book_id and price>:price";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql);
query.setInteger("book_id", 5);
query.setDouble("price", 5);
// Hibernate: select book0_.bookname as col_0_0_, book0_.bookCode as
// col_1_0_ from t_book book0_ where book0_.book_id>? and
// book0_.price>?
List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) {
System.out.println(b[0] + "," + b[1]);
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

6.2、

@Test
public void test07() { Session session = null; String sql = " select bookname,bookCode from book where book_id>:book_id and price>:price";
try {
session = HibernateUtil.getSessionFactory().openSession(); Query query = session.createQuery(sql);
query.setInteger(0, 5);
query.setDouble(1, 5);
// Hibernate: select book0_.bookname as col_0_0_, book0_.bookCode as
// col_1_0_ from t_book book0_ where book0_.book_id>? and
// book0_.price>?
List<Object[]> list = (List<Object[]>) query.list(); for (Object[] b : list) {
System.out.println(b[0] + "," + b[1]);
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}

  

7、执行SQL

@Test
public void test08_jdbc() {
Session session = null;
//Rhythmk
String sql = " select bookCode,bookname from t_book where book_id>? and price>?";
try {
session = HibernateUtil.getSessionFactory().openSession(); SQLQuery query = session.createSQLQuery(sql);
query.setInteger(0, 5);
query.setDouble(1, 5); List<Object[]> list = (List<Object[]>) query.list();
for (Object[] b : list) {
System.out.println(b[0] + "," + b[1]);
} } catch (HibernateException e) { e.printStackTrace();
} finally {
if (session != null)
session.close();
}
} }

  http://pan.baidu.com/s/1hqGDNq0

Rhythmk 学习 Hibernate 09 - Hibernate HQL的更多相关文章

  1. [原创]java WEB学习笔记89:Hibernate学习之路-- -Hibernate检索方式(5种),HQL介绍,实现功能,实现步骤,

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. Rhythmk 学习 Hibernate 06 - Hibernate 表间关系 [One To One]

    1.One To One 单相 背景: 古代一个老婆  只能关联一个老公 husband.java package com.rhythmk.model; public class husband { ...

  3. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. Hibernate的查询 HQL查询 查询某几列

    HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式.HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将H ...

  5. 学习ORM框架—hibernate(三):跟踪持久化对象状态,掌握对象持久化

    准备工作 在上篇博客中学习ORM框架—hibernate(一):初识hibernate,通过简单的实例说明O和R的映射过程.本篇博客将要介绍hibernate中持久化对象的状态,并使用hibernat ...

  6. Hibernate基础学习(一)—初识Hibernate

    一.对象的持久化 狭义的理解: 持久化仅仅指把对象永久的保存到数据库中. 广义的理解: 持久化包括和数据库相关的各种操作.         保存: 把对象永久保存到数据库中.         更新: ...

  7. Hibernate中关于HQL查询返回List<Object>数据的结果集问题

    ---恢复内容开始--- 开发中遇到的一个小问题,使用Hibernate中的HQL查询时,使用query.list()查询出来的是一个List<Object>结果集 原来代码: publi ...

  8. Hibernate学习一:Hibernate注解CascadeType

    http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...

  9. 【Hibernate步步为营】--hql查询小介

    HQL 是指Hibernate Query Language,它是Hibernate的查询语言,拥有一套自己的查询机制,它的查询语句和SQL非常类似.在使用的时候可以非常快上手.HQL提供了基本上SQ ...

随机推荐

  1. Rails 5 Test Prescriptions 第7章 double stub mock

    https://relishapp.com/rspec/rspec-mocks/v/3-7/docs/basics/test-doubles 你有一个问题,如果想为程序添加一个信用卡程序用于自己挣钱. ...

  2. mybatis之org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'time' in 'class java.lang.String'

    mybatis接口 List<String> getUsedCate(String time); 配置文件 <select id="getUsedCate" pa ...

  3. appium+pytest+allure+jenkins 如何实现多台手机连接

    使用appium可以实现app自动化测试,我们之前是连接一台手机去运行,如何同时连接多台手机呢?很多人可能想到的是多线程(threading).今天分享一种比多线程更简单的方法,虽然不是多台手机同时运 ...

  4. oracle性能诊断艺术-执行计划

    --case1 --case2 --case3 --case4 --case5 --case6 --case7 --case8 --case9 --case10 --case12 SQL> AL ...

  5. Hibernate主键生成器

    主键生成器负责生成数据表记录的主键:increment:为long,short或者int类型主键生成唯一标识.只有在没有其他进程往同一张表中插入数据时才能使用.在集群下不能使用! identity:在 ...

  6. SGU 131. Hardwood floor 状压dp 难度:2

    131. Hardwood floor time limit per test: 0.25 sec. memory limit per test: 4096 KB The banquet hall o ...

  7. JQuery鼠标移到小图显示大图效果的方法

    JQuery鼠标移到小图显示大图效果的方法 本文实例讲述了JQuery鼠标移到小图显示大图效果的方法.分享给大家供大家参考.具体分析如下: 这里的显示大图功能类似上一篇<JQuery实现超链接鼠 ...

  8. bzoj2631

    题解: lct+链上修改 每一次修改的时候记录lazy标记 如果有了乘法,加法的lazy标记也要相应的随之变化 代码: #pragma GCC optimize(2) #include<bits ...

  9. Android 遍历全国地区位置(一)

    1.布局 choose_area.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  10. 如何在JavaScript中手动创建类数组对象

    前言 关于什么是js的类数组对象这里不再赘述.可以参考这个链接,还有这里. js中类数组对象很多,概念简单的讲就是看上去像数组,又不是数组,可以使用数字下标方式访问又没有数组方法. 例: argume ...