zoukankan      html  css  js  c++  java
  • hibernate对数据库查询的坑

    hibernate对数据库的查询其实有很多种方法,下面我来介绍我知道的两种方法,以及它们可能会遇到的问题,这里前两种都是查询所有结果

    最后一种是 使用hibernate查询一条记录。

    第一种方法

    public void queryTest() {
    		Configuration configuration = new Configuration();//默认就是加载hibernate.cfg.xml
    		configuration.configure();
    		//获得会话工厂,创建会话
    		SessionFactory buildSessionFactory = configuration.buildSessionFactory();
    		//获得session
    		Session session = buildSessionFactory.openSession();
    		
    		//开启事务
    		Transaction tx = session.beginTransaction();
    
             //注意这个地方,直接from 就行,from后面跟的是自己建的bean类名,不是表名 Query createQuery = session.createQuery("from Student");
    List<Student> students = createQuery.list(); for(Student student:students) { System.out.println(student); } //关闭资源 session.close(); buildSessionFactory.close(); }

    !!!!!!! 这种查询方式大家注意了,这里我的bean名字是Student,所以上面是from Student

     

     第二种方法:

    package com.cidp.test;
    
    import java.util.List;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    
    import com.cidp.pojo.Student;
    
    public class MyTest {
    	
    	//测试插入数据
    	@Test
    	public void queryTest() {
    		Configuration configuration = new Configuration();//默认就是加载hibernate.cfg.xml
    		configuration.configure();
    		//获得会话工厂,创建会话
    		SessionFactory buildSessionFactory = configuration.buildSessionFactory();
    		//获得session
    		Session session = buildSessionFactory.openSession();
    		
    		//开启事务
    		Transaction tx = session.beginTransaction();
    		
              //这种主要就是自己写sql语句,这里就是sql怎么写就是怎样的了。 Query query = session.createSQLQuery("select * from stu_info").addEntity(Student.class); List<Student> list = (List<Student>)query.list(); for(Student student:list) { System.out.println(student); } //关闭资源 session.close(); buildSessionFactory.close(); } }

    第三种:

    package com.cidp.test;
    
    import java.util.List;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.junit.Test;
    
    import com.cidp.pojo.Student;
    
    public class MyTest {
    	
    	//测试插入数据
    	@Test
    	public void queryOneTest() {
    		Configuration configuration = new Configuration();//默认就是加载hibernate.cfg.xml
    		configuration.configure();
    		//获得会话工厂,创建会话
    		SessionFactory buildSessionFactory = configuration.buildSessionFactory();
    		//获得session
    		Session session = buildSessionFactory.openSession();
    		
    		//开启事务
    		Transaction tx = session.beginTransaction();
    		
    		Query query = session.createSQLQuery("select * from stu_info where id = 2");

              //返回的是Object[], 存放的是一条数据中,的每一列元素,例如2 李四 123456 Object[] uniqueResult = (Object[]) query.uniqueResult(); for(Object object : uniqueResult) { System.out.print(object + " "); } System.out.println(); //关闭资源 session.close(); buildSessionFactory.close(); } }
  • 相关阅读:
    9.1 正则介绍_grep上 9.2 grep中 9.3 grep下
    汉诺塔递归问题
    8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下
    8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件
    8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向
    socket中使用序列化传结构体
    C# get,set属性用法
    Log4Net如何将日志按不同类型写入多个文件中
    app.config文件的configation标签中加代码引起”配置系统未能初始化“
    WinForm下使用 log4net
  • 原文地址:https://www.cnblogs.com/zzlback/p/9451290.html
Copyright © 2011-2022 走看看