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

    输出结果:

  • 相关阅读:
    11.11 程序员的 1111 种死法
    护航11.11,如何筑牢安全防御系统?
    如何应对大促流量洪峰?揭秘京东技术人的备战手册
    TIOBE 11 月编程语言:Java 首次跌出前二;基于Pytorch的Kornia可微分计算机视觉库开源
    会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?
    “开源软件供应链点亮计划
    走进京东 | 中国空间技术研究院青年创新联盟成员莅临参观京东总部
    深度解读展会场景智能推荐搭建之路 | 会展云技术解读
    第一届“多模态自然语言处理研讨会”精彩回顾(免费获取PPT)
    AI 科学家带你快速 Get 人工智能最热技术
  • 原文地址:https://www.cnblogs.com/lubolin/p/7766499.html
Copyright © 2011-2022 走看看