zoukankan      html  css  js  c++  java
  • Hibernate中的Query对象查询所有记录

    映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:

     1 package com.yinfu.test;
     2 
     3 
     4 import java.util.List;
     5 
     6 import org.hibernate.Query;
     7 import org.hibernate.Session;
     8 import org.hibernate.SessionFactory;
     9 import org.hibernate.Transaction;
    10 import org.junit.Test;
    11 
    12 import com.yinfu.entity.User;
    13 import com.yinfu.utils.HibernateUtils;
    14 
    15 public class HibernateQueryTest {
    16 
    17     @Test
    18     public void queryTest() {
    19         SessionFactory sessionFactory = null;
    20         Session session = null;
    21         Transaction tx = null;
    22         try {
    23             sessionFactory = HibernateUtils.getSessionFactory();
    24             session = sessionFactory.openSession();
    25             tx = session.beginTransaction();
    26             
    27             //1:创建query对象,方法里面写hql语句
    28             Query query = session.createQuery("from User");
    29             //2:利用query对象中的方法得到结果
    30             List<User> list = query.list();
    31             System.out.println(list);
    32             
    33             tx.commit();
    34         } catch (Exception e) {
    35             e.printStackTrace();
    36             tx.rollback();
    37         }finally{
    38             session.close();
    39             sessionFactory.close();
    40         }
    41     }
    42 
    43 }
    QueryTest

    输出结果:

    映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:

     1 package com.yinfu.test;
     2 
     3 
     4 import java.util.List;
     5 
     6 import org.hibernate.Criteria;
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.hibernate.Transaction;
    11 import org.junit.Test;
    12 
    13 import com.yinfu.entity.User;
    14 import com.yinfu.utils.HibernateUtils;
    15 
    16 public class HibernateQueryTest {
    17 
    18     @Test
    19     public void criteriaTest() {
    20         SessionFactory sessionFactory = null;
    21         Session session = null;
    22         Transaction tx = null;
    23         try {
    24             sessionFactory = HibernateUtils.getSessionFactory();
    25             session = sessionFactory.openSession();
    26             tx = session.beginTransaction();
    27             
    28             //1:创建query对象,方法里面实体类class
    29             Criteria criteria = session.createCriteria(User.class);
    30             //2:利用query对象中的方法得到结果
    31             List<User> list = criteria.list();
    32             System.out.println(list);
    33             
    34             tx.commit();
    35         } catch (Exception e) {
    36             e.printStackTrace();
    37             tx.rollback();
    38         }finally{
    39             session.close();
    40             sessionFactory.close();
    41         }
    42     }
    43 
    44 }
    CriteriaTest

    输出结果:

    映射文件,核心文件,实体类,工具类的内容都不变直接看测试方法中的代码:(这样输出的默认是数组型集合,不是对象型集合)

     1 package com.yinfu.test;
     2 
     3 
     4 import java.util.List;
     5 
     6 import org.hibernate.Criteria;
     7 import org.hibernate.Query;
     8 import org.hibernate.SQLQuery;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.Transaction;
    12 import org.junit.Test;
    13 
    14 import com.yinfu.entity.User;
    15 import com.yinfu.utils.HibernateUtils;
    16 
    17 public class HibernateQueryTest {
    18 
    19     @Test
    20     public void sqlQueryTest() {
    21         SessionFactory sessionFactory = null;
    22         Session session = null;
    23         Transaction tx = null;
    24         try {
    25             sessionFactory = HibernateUtils.getSessionFactory();
    26             session = sessionFactory.openSession();
    27             tx = session.beginTransaction();
    28             
    29             //1:创建query对象,方法里面是普通的SQL语句
    30             SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
    31             //2:利用sqlQuery对象中的方法得到结果
    32             //返回list对象,默认list中的每部分都是数组结构
    33             List list = sqlQuery.list();
    34             System.out.println(list);
    35             
    36             tx.commit();
    37         } catch (Exception e) {
    38             e.printStackTrace();
    39             tx.rollback();
    40         }finally{
    41             session.close();
    42             sessionFactory.close();
    43         }
    44     }
    45 
    46 }
    sqlQueryTest

    此时的结果是:

    装换成对象型集合:

     1 package com.yinfu.test;
     2 
     3 
     4 import java.util.List;
     5 
     6 import org.hibernate.Criteria;
     7 import org.hibernate.Query;
     8 import org.hibernate.SQLQuery;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.Transaction;
    12 import org.junit.Test;
    13 
    14 import com.yinfu.entity.User;
    15 import com.yinfu.utils.HibernateUtils;
    16 
    17 public class HibernateQueryTest {
    18 
    19     @Test
    20     public void sqlQueryTest() {
    21         SessionFactory sessionFactory = null;
    22         Session session = null;
    23         Transaction tx = null;
    24         try {
    25             sessionFactory = HibernateUtils.getSessionFactory();
    26             session = sessionFactory.openSession();
    27             tx = session.beginTransaction();
    28             
    29             //1:创建query对象,方法里面是普通的SQL语句
    30             SQLQuery sqlQuery = session.createSQLQuery("select * from t_user");
    31             //2:设置数据放到哪个对象中去
    32             sqlQuery.addEntity(User.class);
    33             //3:利用sqlQuery对象中的方法得到结果
    34             //返回list对象,默认list中的每部分都是数组结构
    35             List<User> list = sqlQuery.list();
    36             System.out.println(list);
    37             
    38             tx.commit();
    39         } catch (Exception e) {
    40             e.printStackTrace();
    41             tx.rollback();
    42         }finally{
    43             session.close();
    44             sessionFactory.close();
    45         }
    46     }
    47 
    48 }
    sqlQueryTest

    输出结果:

  • 相关阅读:
    Helpers Overview
    Validation
    Support Facades
    Session Store
    位运算(参考百科)
    开源项目_可能使用到的开源项目集合
    秒杀系统架构分析与实战(转)
    shell命令之根据字符串查询文件对应行记录
    MySQL做为手动开启事务用法
    spring 加载bean过程源码简易解剖(转载)
  • 原文地址:https://www.cnblogs.com/lubolin/p/7766499.html
Copyright © 2011-2022 走看看