hibernate 查询
来源:互联网 发布:c语言.h文件 编辑:程序博客网 时间:2024/06/03 10:53
HQL的查询方式概述
1. HQL的介绍
* HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似* 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式
2. HQL与SQL的关系
* HQL 查询语句是面向对象的,Hibernate负责解析HQL查询语句, 然后根据对象-关系映射文件中的映射信息, 把 HQL 查询语句翻译成相应的 SQL 语句.* HQL 查询语句中的主体是域模型中的类及类的属性
* SQL 查询语句是与关系数据库绑定在一起的. SQL查询语句中的主体是数据库表及表的字段
Hibernate框架的查询方式
1. 唯一标识OID的检索方式* session.get(对象.class,OID)2. 对象的导航的方式
Department department = session.get(Department.class,1); Set<Employee> employes = department.getEmployess(); for(Employee employee: employess){ log.info(employee); }3. HQL的检索方式
* Hibernate Query Language -- Hibernate的查询语言
4. QBC的检索方式
* Query By Criteria -- 条件查询
5. SQL检索方式
* 本地的SQL检索
hql 语句:
session.save(user); //添加session.get(User.class,1); //查询session.update(user); //更新session.delete(user); //删除
1. 查询单一属性 返回List中装的是属性类型
String hql = "FROM User";Query query = session.createQuery(hql);List<User> lists = query.list();
2. 查询多个属性
String hql = "SELECT new User(name,age) FROM User";Query query = session.createQuery(hql);List<User> lists = query.list();
3.查询单个字段
String hql = "SELECT name FROM User";List<String> lists = session.createQuery(hql).list();
4.返回唯一结果 uniqueResult
String hql = "SELECT name FROM User";String name= session.createQuery(hql).uniqueResult();
参数查询
1.属性
String hql = "FROM User WHERE name=:username AND age=:age";Query query = session.createQuery(hql);query.setParameter("username", "小明"); //设置参数query.setParameter("age", 19);List<User> lists = query.list();
2.拼接 (安全性低)
String hql = "FROM User WHERE name='"+username+"'";List<User> lists = session.createQuery(hql).list();
3.站位符: (hql 占位符 是从 0 开始,sql占位符时 从1开始 )
String hql = "FROM User WHERE name=? AND age=?";Query query = session.createQuery(hql);query.setParameter(0, "小明");query.setParameter(1, 12);
阅读全文
0 0
- hibernate查询
- Hibernate 查询
- hibernate查询
- HIbernate 查询
- HIbernate 查询
- HIbernate 查询
- HIBERNATE查询
- Hibernate查询
- Hibernate查询
- Hibernate查询
- Hibernate 查询
- HIbernate查询
- Hibernate查询
- Hibernate查询
- Hibernate查询
- Hibernate 查询
- hibernate查询
- hibernate 查询
- iOS 开发是否要采用 React Native?
- LeetCode-Easy刷题(9) Implement strStr()
- Spring AOP报错 error at ::0 name binding only allowed in target, this, and args pcds
- 冒泡排序
- LeetCode-Easy刷题(10) Search Insert Position
- hibernate 查询
- msq(2)jdbc
- 关于memcached基本操作命令
- 如何绕过现代Process Hollowing检测机制
- 可执行的移动端网站seo技术
- 每天一道算法题——数值的整数次幂
- 面试/笔试第五弹 —— Java面试问题集锦(上篇)
- 前端开发者该如何应用数据库
- 事件冒泡、事件捕获与事件委托