-
什么是hql
HQL是Hibernate Query Language的缩写 -
hql和sql区别/异同
HQL
类名/属性
区分大小写,关键字不区分大小写
可以取别名
?(占位符),从下标0开始计算位置(hibernate5之后不支持)
:命名参数
面向对象的查询语言SQL
表名/列名
不区分大小写
可以取别名
?(占位符),从顺序1开始计算位置
不支持:命名参数
面向结构查询语言 -
处理返回的结果集
private Session session;
private Transaction transaction;
@Before
public void before() {
session = SessionFactoryUtils.getSession();
transaction = session.beginTransaction();
}
@After
public void after() {
transaction.commit();
SessionFactoryUtils.closeSession();
}
/**
* 处理返回的结果集情况一:对象
* 查询所有显示的为一个对象的集合
*/
@Test
public void test1() {
String hql = " from Book";
Query query = session.createQuery(hql);
List<Book> books = query.list();
for (Book book : books) {
System.out.println(book);
}
}