zoukankan      html  css  js  c++  java
  • 本地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】

  • 相关阅读:
    2012个人总结与展望
    C++Event机制的简单实现
    string与char*比较 ——why use string
    创建型模式学习总结——设计模式学习笔记
    Bridge模式——设计模式学习笔记
    Singleton模式——设计模式学习
    Adapter模式——设计模式学习笔记
    C++ 申请连续的对象内存
    7 个致命的 Linux 命令与个人评论
    关于保存Activity的状态
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7300440.html
Copyright © 2011-2022 走看看