hibernate的Hql语句
HQL
①是Hibernate Query Language的缩写。
②他是一种和java类似的面向对象的数据库操作语句。③hql查的不是表示实体类。通过查实体类去查表数据。
hql和sql区别/异同
HQL | SQL |
---|---|
类名/属性 别名 | 表名/列名 别名 |
区分大小写,关键字不区分大小写 | 不区分大小写 |
?,从下标0开始计算位置(hibernate5之后不支持 ):命名参数 | ?,从顺序1开始计算位置 不支持:命名参数 |
面向对象的查询语言 | 面向结构查询语言 |
注1:QuerySyntaxException:book is not mapped
处理返回的结果集:
①查询所有
②查询单个
注意:不是查表的全部字段 hql语句前必须加selsect!!
注意区分大小写 如果bookName中的属性不对 那么就会报错反射找不到属性。
③ 查询多列(非全列)
④通过hibernate函数Map处理
注意:函数这个词是源于数据库 函数不区分大小写(它不是接口)
⑤通过构造方法去查询
加的有参数无参构造器是:
public Book(Integer bookId, String bookName) {
super();
this.bookId = bookId;
this.bookName = bookName;
}
public Book() {
super();
}
⑥占位符问题
⑦连表查询
⑧聚合函数:
⑨分页查询