今日课程:
1,什么是HQL
HQL是Hibernate Query Language(hibernate的查询语言)的缩写
2,HQL和SQL区别/异同
HQL SQL 操作类名/属性 操作表名/列名 区分大小写,关键字不区分大小写 不区分大小写 别名 别名 as a ?,从下标0开始计算位置(hibernate5之后不支持)
?,从顺序1开始计算位置 命名参数 不支持。命名参数
面向对象的查询语言 面向结构查询语言 3,HQL的使用
4,BaseDao
测试对象返回多个:
/**
* 返回对象(多个)
*/
@Test
public void testList1() {
Query query = session.createQuery("from Book");
List<Book> list = query.list();
for (Book b : list) {
System.out.println(b);
}
}
运行结果:
测试 返回单个列段,用字符串就可以接受:
/**
* 返回单个列段,用字符串就可以接受
*/
@Test
public void testList2() {
Query query = session.createQuery("select b.bookName as ss from Book b");
List<String> list = query.list();
for (String b : list) {
System.out.println(b);
}
}
运行结果:
查两个列段及以上,默认返回的是Object【】
/**
* 查两个列段及以上,默认返回的是Object【】
*/
@Test
public void testList3() {
Query query = session.createQuery("select b.bookId,b.bookName as ss from Book b");
List<Object[]> list = query.list();
for (Object[] b : list) {
System.out.println(Arrays.toString(b));
}
}
运行结果:
注意map是函数,所以不区分大小写,返回的是map集合
/**
* 注意map是函数,所以不区分大小写,返回的是map集合
*/
@Test
public void testList4() {
Query query = session.createQuery("select new mAp(b.bookId,b.bookName) from Book b");
List<Map&g