zoukankan      html  css  js  c++  java
  • 04Hibernate查询

    • Query对象查询
    • Criteria对象查询
    • SQLQuery对象查询

    一、Query对象

    • 使用query对象,不需要写SQL语句,但是需要些hql语句
    1. hql:hibernate query language,hibernate提供查询语言,hql语句和SQL语句很相似;
    2. hql和SQL语句的区别
      • 使用SQL操作表和字段
      • 使用hql操作实体类和属性
    • 使用hql查询所有 
      • from 实体类名称
    • Query对象的使用
    1. 创建Query对象;
    2. 调用Query对象中的方法查询结果
       1     public void testQuery() {
       2          SessionFactory sessionFactory = null;
       3          Session session = null;
       4          Transaction tx = null;
       5          try {
       6              sessionFactory = HibernateUtils.getSessionFactory();
       7              session =HibernateUtils.getCurrentSession();
       8              
       9              tx = session.beginTransaction();
      10              
      11              //1、创建query对象
      12              Query query = session.createQuery("from User");
      13              //2.得到查询结果 
      14              List<User> list = query.list();
      15              for (User user : list) {
      16                 System.out.println(user);
      17             }
      18              tx.commit();
      19              
      20          }catch(Exception exception) {
      21              exception.printStackTrace();
      22              tx.rollback();
      23          }finally {
      24              
      25          }
      26     }
      View Code

    二、Criteria对象 

     1     public void testCriteria() {
     2          SessionFactory sessionFactory = null;
     3          Session session = null;
     4          Transaction tx = null;
     5          try {
     6              sessionFactory = HibernateUtils.getSessionFactory();
     7              session =HibernateUtils.getCurrentSession();
     8              
     9              tx = session.beginTransaction();
    10              
    11              //创建criteria对象
    12              Criteria criteria = session.createCriteria(User.class);
    13              List<User> list = criteria.list();
    14              
    15              for (User user : list) {
    16                 System.out.println(user);
    17             }
    18              tx.commit();
    19              
    20          }catch(Exception exception) {
    21              exception.printStackTrace();
    22              tx.rollback();
    23          }finally {
    24              
    25          }
    26     }
    View Code

    三、SQLQuery对象

    1. 在使用hibernate的SQLquery对象时调用底层sql来实现功能;
    2. 实现过程
      1. 创建对象
      2. 调用对象的方法
     1     public void testSqlQuery() {
     2          SessionFactory sessionFactory = null;
     3          Session session = null;
     4          Transaction tx = null;
     5          try {
     6              sessionFactory = HibernateUtils.getSessionFactory();
     7              session =HibernateUtils.getCurrentSession();
     8              
     9              tx = session.beginTransaction();
    10              
    11              //创建criteria对象
    12              SQLQuery sqlQuery = session.createSQLQuery("select * from tab_users");
    13              
    14              /*List<Object[]> list = sqlQuery.list();
    15              
    16              for (Object[] object : list) {
    17                 System.out.println(Arrays.toString(object));
    18             }*/
    19              
    20              sqlQuery.addEntity(User.class);
    21              List<User> list = sqlQuery.list();
    22              for (User user : list) {
    23                  System.out.println(list);
    24             }
    25              tx.commit();
    26              
    27          }catch(Exception exception) {
    28              exception.printStackTrace();
    29              tx.rollback();
    30          }finally {
    31              
    32          }
    33     }
    View Code
  • 相关阅读:
    DevExpress GridControl用法----SearchLookUpEdit,单选框,图片,颜色,进度条,分页查询
    EasyUi之Datagrid行拖放冲突处理
    [LeetCode No.1] 两数之和
    [LeetCode No.2] 两数相加
    注册定义文件扩展名图标和关联相应的应用程序
    加载进度-【圆圈+百分比】
    .net core + eureka + spring boot 服务注册与调用
    一个Java类的加载
    Nifi:nifi内置处理器Processor的开发
    Nifi:nifi的基本使用
  • 原文地址:https://www.cnblogs.com/kispine/p/8910512.html
Copyright © 2011-2022 走看看