本地SQL查询

Posted siwuxie095

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了本地SQL查询相关的知识,希望对你有一定的参考价值。

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

   

   

   

   

   

   

   

本地 SQL 查询

   

   

1、简单介绍

   

采用 HQLQBC 查询时,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查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 本地sql查询 使用函数出现不可理解的错误

sql查询不在本地主机上执行

使用 RStudio 连接到本地存储的压缩 SQL 数据库并在其上运行查询

SQL Server:本地查询时间与网络查询时间...和锁定

如何保护加载数据本地infile更新查询免受sql注入

Access 中的 T-SQL 直通查询是不是可以包含本地 Access 表?