zoukankan      html  css  js  c++  java
  • Hibernate其它API

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

       

       

       

       

       

       

       

       

    (一)Query

       

       

    1、使用 Query 对象执行查询操作,不需要写 sql 语句,但是要写 hql 语句

       

    1)hql:即 Hibernate Query Language,它是 Hibernate 提供的查询语言

       

    2)hql 语句和 sql 语句很相似

       

    3)hql 和 sql 语句的区别:

       

    1)使用 sql 语句操作的是和表中字段

       

    2)使用 hql 语句操作的是实体类属性

       

       

       

    2、"查询所有记录" hql 语句

       

    from 实体类名

       

       

       

    3、实现过程

       

    1)创建 Query 对象

       

    2)调用 Query 对象的方法得到结果

       

       

       

    //(1) 创建 Query 对象

    //

    //调用 session createQuery() 方法,

    //参数是 hql 语句,返回值是 Query 类型,

    //创建以接收

    Query query=session.createQuery("from User");

    //(2) 调用 Query 对象的方法得到结果

    //

    //调用 query list() 方法得到结果,

    //返回值是 List 类型,创建以接收,并

    //指定泛型为 User

    List<User> list=query.list();

    for (User user : list) {

    System.out.println(user);

    }

       

       

       

       

       

    (二)Criteria

       

       

    1、使用 Criteria 对象执行查询操作,不需要写语句,直接调用方法实现

       

       

       

    2、实现过程

       

    1)创建 Criteria 对象

       

    2)调用 Criteria 对象的方法得到结果

       

       

       

    //(1) 创建 Criteria 对象

    //

    //调用 session createCriteria() 方法,

    //参数是实体类的 class,返回值是 Criteria

    //类型,创建以接收

    Criteria criteria=session.createCriteria(User.class);

    //(2) 调用 Criteria 对象的方法得到结果

    //

    //调用 criteria list() 方法得到结果,

    //返回值是 List 类型,创建以接收,并指定

    //泛型为 User

    List<User> list=criteria.list();

    for (User user : list) {

    System.out.println(user);

    }

       

       

       

       

       

    (三)SQLQuery

       

       

    1、使用 SQLQuery 对象执行查询操作,可以调用底层 sql 语句实现

       

       

       

    2、实现过程

       

    1)创建 SQLQuery 对象

       

    2)调用 SQLQuery 对象的方法得到结果

       

       

       

    //(1) 创建 SQLQuery 对象

    //

    //调用 session createCriteria() 方法,

    //参数是 sql 语句,返回值是 SQLQuery 类型,

    //创建以接收

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

    //(2) 调用 SQLQuery 对象的方法得到结果

    //

    //调用 sqlQuery list() 方法得到结果,

    //返回值是 List 类型,创建以接收

    //

    //注意:此时返回的 List 的每部分都是一

    //个数组,而不是 User 对象,所以指定泛型

    // Object[]

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

    for (Object[] objects : list) {

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

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

    }

       

       

       

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

       

       

       

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

    //让返回的 List 中每部分都是一个 User 对象

    //

    //调用 sqlQuery addEntity() 方法,参数

    //是实体类的 class,设置要将数据放到哪个实

    //体类的对象中

    sqlQuery.addEntity(User.class);

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

    for (User user : list) {

    System.out.println(user);

    }

       

       

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    Spring Boot Docker
    基于 Spring Security 的前后端分离的权限控制系统
    Java图片加水印
    Linux安装Nexus
    Spring Security 入门篇
    树形结构的菜单表设计与查询
    延迟队列的常用的实现方式
    Spring Boot 自动配置 源码分析
    Spring Boot 启动过程
    服务端如何防止重复支付
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7287351.html
Copyright © 2011-2022 走看看