-------------------siwuxie095

本地 SQL 查询

1、简单介绍

采用 HQL 或 QBC 查询时,Hibernate 生成标准的 SQL 语句,

适用于所有的数据库平台,因此这两种查询方式都是跨平台的

但有的数据库可能需要底层数据库的 SQL 方言,来生成一些

特殊的查询语句

此时,可以使用 Hibernate 提供的本地 SQL 查询

2、使用 SQLQuery 对象实现本地 SQL 查询

以客户和联系人为例(一对多)

如:

/*

* (1) 创建 SQLQuery 对象

*

* 调用 session 的 createSQLQuery() 方法,

* 参数是本地 sql 语句,返回值是 SQLQuery

* 类型,创建以接收

*/

SQLQuery sqlQuery=session.createSQLQuery("select * from t_customer");

/*

* (2) 调用方法得到结果

*

* 调用 sqlQuery 的 list() 方法,返回值是 List 类

* 型,创建以接收

*

* 注意:此时返回的 List 的每部分都是一个数组,而

* 不是 Customer 对象,所以指定泛型为 Object[]

*/

List<Object[]> list=sqlQuery.list();

for (Object[] objects : list) {

//Arrays.toString() 将数组作为字符串输出

System.out.println(Arrays.toString(objects));

}

修改:让返回的 List 中每部分都是一个 Customer 对象

/*

* (1) 创建 SQLQuery 对象

*/

SQLQuery sqlQuery=session.createSQLQuery("select * from t_customer");

/*

* (2) 让返回的 List 中每部分都是一个 Customer 对象

*

* 调用 sqlQuery 的 addEntity() 方法,参数是实体类的

* class,设置要将数据放到哪个实体类的对象中

*/

sqlQuery.addEntity(Customer.class);

/*

* (3) 调用方法得到结果

*/

List<Customer> list=sqlQuery.list();

【made by siwuxie095】

本地SQL查询的更多相关文章

  1. hibernate将本地SQL查询结果封装成对象

    hibernate将本地SQL查询结果封装成对象 不知道大家有没有碰过这种情况,迫于很多情况只能用native SQL来查询(如:复杂统计等),然而使用native查询后,结果会被放到object里, ...

  2. Hibernate之QBC查询与本地SQL查询

    1. QBC查询:     QBC 查询就是通过使用Hibernate提供的QueryByCriteria API 来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 ...

  3. Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加

    Hibernate的添加,修改,查询(三种查询方式)的方法: 案例演示: 1:第一步,导包,老生常谈了都是,省略: 2:第二步,创建数据库和数据表,表结构如下所示: 3:第三步创建实体类User.ja ...

  4. 20 本地SQL查询

    Spring Data JPA同样也支持sql语句的查询 //nativeQuery : 使用本地sql的方式查询 @Query(value="select * from customer& ...

  5. [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. hibernate框架学习之数据查询(本地SQL)

    本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery(&q ...

  7. Hibernate之QBC检索和本地SQL检索

    QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 本地SQL查询来完善HQL ...

  8. Hibernate(十五):QBC检索、本地SQL检索和HQL删除

    QBC检索 QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口. 1)通过Cr ...

  9. 记一次JPA遇到的奇葩错误——本地sql不识别表名的别名

    记一次JPA遇到的奇葩错误——本地sql不识别表名的别名 报错:Unknown column 'our' in 'field list' 起因:需要本地sql查询后,分页返回自定义对象.报错信息如下: ...

随机推荐

  1. MyEclipse项目突然报错JavanotFindClassException

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/UP19910522/article/details/25985277 好好的项目.从SVN检出到本地 ...

  2. cocostudio ui编辑器 使用心得

    1 c++包含路径 2九宫格设置 cocostudio ui编辑器设置九宫格x,y,w,h是从图片左上角开始测量,然后调整尺寸就行了. 2.  如果点了自适应  panel会在加载json的时候被设置 ...

  3. Linux VPS禁止某个IP访问

    http://www.vpser.net/security/linux-vps-deny-ip.html

  4. 让C# Excel导入导出,支持不同版本的Office(转)

    问题:最近在项目中遇到,不同客户机安装不同Office版本,在导出Excel时,发生错误. 找不到Excel Com组件,错误信息如下. 未能加载文件或程序集“Microsoft.Office.Int ...

  5. zk中文乱码问题

    之前讲了怎么把数据导入到zookeeper(见zookeeper事件监听的importData方法),虽然本机win10的zookeeper展示没问题,但到了linux上就出现乱码了: << ...

  6. 用命令行cmd 编译小程序

    操作命令: C:\Users\Administrator>"C:\Program Files (x86)\MSBuild\12.0\Bin\csc.exe" /out:D: ...

  7. k8s1.4.3安装实践记录(2)-k8s安装

    前面一篇已经安装好了ETCD.docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了 1.K8S 目前centos yum上的kubernetes还是1.2.0, ...

  8. ActiveMQ入门之四--ActiveMQ持久化方式

    消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和 ...

  9. if、while中变量的作用域问题

    我们知道,函数.类会改变当前变量的作用域.if,while等分支循环结构会继承外部作用域,即外部变量对分支循环结构内部可见. 但是C语言不支持if,while等分支循环结构内部作用域对外可见,而PHP ...

  10. 用IO字节流复制文件-CopyFileByIo

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...