Hibernate入门(8):SQL查询
来源:互联网 发布:access数据库设计视图 编辑:程序博客网 时间:2024/06/13 05:20
使用 Hibernate 进行 CURD 操作时候,插入、更新、删除操作可以直接用过对持久化实体(PO)实例来进行,对于查询操作,Hibernate 提供了以下3种方式来进行:
- HQL 查询;
- Criteria 条件查询(hibernate 5.x 已经废弃);
- SQL 查询;
以下示例代码中出现的 HibernateUtil 类是一个封装的Session管理类,详看:HibernateUtil
Hibernate SQL查询
Hibernate 除了使用自己的HQL进行查询外,还可以使用原生的 SQL 进行查询,同样原生 SQL 也支持命名查询,hibernate 3 之后,命名SQL查询可以用调用储存过程;
SQL 查询是通过 SQLQuery 接口来实现的,SQLQuery 接口是 Query 的子接口,所以 SQLQuery 通用 Query 的方法常用的 API 如下:
其中SQL模板的占位符同HQL中一样可以使用 “:N”或“?”,详细看:http://blog.csdn.net/al_assad/article/details/77900663
标量查询
最基本的SQL查询就是返回一个标量列表,与 JDBC 的方式相似,简单的示例如下:
对于以上的例子,假如表结构为 :User(id,user_name,user_age,user_icon,create_date)
如果直接 List list = session.createSQLQuery("select * from User").list(),那么 hibernate 回将所有的字段全部自动转化为标量,并返回为 List 中;
按上面的实例使用 addScalar 显式指示标量名称和类型,那么只会返回显式指定的字段标量;
实体查询
如果查询返回某个数据表的全部数据列,且该数据表有对应的持久化类映射,可以使用 addEntity() 将该数据表转化为持久化实体,如下:
当进行实体查询时,包含关联查询,可以使用 join()方法指定关联实体,如下示例,User 实体和 Article 实体之间的关联关系为 1-N:
SQL 命名查询
和 HQL 一样,hibernate 也支持 SQL 命名查询,可以将查询有语句放置在实体类的注释中,使用@NamedNativeQuery注解,多个@NamedNativeQuery注解可以放置在@NamedNativeQueries 注解中;
如下示例:
User.java
Test.java
阅读全文
0 0
- Hibernate入门(8):SQL查询
- Hibernate入门09_QBC及SQL查询
- Hibernate入门实例——使用原生SQL的查询
- SQL查询入门(下篇)
- SQL查询入门(下篇)
- SQL查询入门(下篇)
- SQL查询入门(下篇)
- Hibernate入门(以查询为例)
- Hibernate入门(7):HQL查询
- Hibernate查询之SQL查询
- Hibernate之SQL检索(查询)方式
- hibernate使用sql查询
- hibernate sql命名查询
- hibernate sql查询 list
- hibernate 使用 sql 查询
- Hibernate sql查询
- Hibernate读书笔记-----SQL查询
- Hibernate-命名SQL查询
- 安装ik分词插件
- WOJ-294 数老鼠
- Java之反射机制
- Jquery easyui 将前台数据进行转换
- 卷积神经网络新思路
- Hibernate入门(8):SQL查询
- 机器学习:手写数字识别(Hand-written digits recognition)小项目
- windows网络编程 实现域名查询ip
- 基于TF-IDF的酒店名称模糊匹配
- 欢迎使用CSDN-markdown编辑器
- Java之多线程
- 大数加法乘法
- proto3变量类型
- hive压缩格式