package cn.itheima.b_api; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import cn.itheima.domain.Customer; //学习Configuration东西 // Configuration成果: 配置加载类.用于加载主配置,orm元数据加载 public class Demo { @Test public void fun1(){ //1 创建,挪用空参结构 Configuration conf = new Configuration(); //2 读取指定主配置文件 => 空参与载要领,加载src下的hibernate.cfg.xml文件 conf.configure(); //3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载 //conf.addResource(resourceName); //conf.addClass(persistentClass); //4 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); } }
2 SessionFactorypackage ; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Test; //学习SessionFactory东西 // SessionFactory成果: 用于创建操纵数据库核心东西session东西的工厂. // 简单说成果就一个---创建session东西 //注意:1.sessionfactory 卖力生存和使用所有配置信息.消耗内存资源非常大. // 2.sessionFactory属于线程安适的东西设计. //结论: 保证在web项目中,只创建一个sessionFactory. public class Demo2 { @Test public void fun1(){ //1 创建,挪用空参结构 Configuration conf = new Configuration(); //2 读取指定主配置文件 => 空参与载要领,加载src下的hibernate.cfg.xml文件 conf.configure(); //3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载 //conf.addResource(resourceName); //conf.addClass(persistentClass); //4 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //-------------------------------------------------- //5 获得session //打开一个新的session东西 sf.openSession(); //获得一个与线程绑定的session东西(明天讲解) sf.getCurrentSession(); } }
3 Sessionpackage ; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.junit.Test; import ; //学习Session东西 //session东西成果: 表达hibernate框架与数据库之间的连接(会话).session类似于 // JDBC年代的connection东西. 还可以完成对数据库中数据的增删改查操纵. // session是hibernate操纵数据库的核心东西 public class Demo3 { @Test //事务操纵 public void fun1(){ //1 创建,挪用空参结构 Configuration conf = new Configuration().configure(); //2 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //3 获得session Session session = sf.openSession(); //4 session获得操纵事务的Transaction东西 //获得操纵事务的tx东西 //Transaction tx = session.getTransaction(); //开启事务并获得操纵事务的tx东西(建议使用) Transaction tx2 = session.beginTransaction(); //---------------------------------------------- //---------------------------------------------- tx2.commit();//提交事务 tx2.rollback();//回滚事务 session.close();//释放资源 sf.close();//释放资源 } @Test //session的新增 public void fun2(){ //1 创建,挪用空参结构 Configuration conf = new Configuration().configure(); //2 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //3 获得session Session session = sf.openSession(); //4 session获得操纵事务的Transaction东西 //获得操纵事务的tx东西 //Transaction tx = session.getTransaction(); //开启事务并获得操纵事务的tx东西(建议使用) Transaction tx2 = session.beginTransaction(); //---------------------------------------------- Customer c = new Customer(); c.setCust_name("微软"); session.save(c); //---------------------------------------------- tx2.commit();//提交事务 session.close();//释放资源 sf.close();//释放资源 } @Test //session的盘问 //盘问id为1的customer东西 public void fun3(){ //1 创建,挪用空参结构 Configuration conf = new Configuration().configure(); //2 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //3 获得session Session session = sf.openSession(); //4 session获得操纵事务的Transaction东西 //获得操纵事务的tx东西 //Transaction tx = session.getTransaction(); //开启事务并获得操纵事务的tx东西(建议使用) Transaction tx2 = session.beginTransaction(); //---------------------------------------------- Customer customer = session.get(Customer.class, 1L); //L 暗示long型 System.out.println(customer); //---------------------------------------------- tx2.commit();//提交事务 session.close();//释放资源 sf.close();//释放资源 } @Test //session的改削 //改削id为1的customer东西的name属性为阿里巴巴 public void fun4(){ //1 创建,挪用空参结构 Configuration conf = new Configuration().configure(); //2 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //3 获得session Session session = sf.openSession(); //4 session获得操纵事务的Transaction东西 //获得操纵事务的tx东西 //Transaction tx = session.getTransaction(); //开启事务并获得操纵事务的tx东西(建议使用) Transaction tx2 = session.beginTransaction(); //---------------------------------------------- //1 获得要改削的东西 Customer c = session.get(Customer.class, 1l); //2 改削 c.setCust_name("阿里巴巴"); //3 执行update session.update(c); //---------------------------------------------- tx2.commit();//提交事务 session.close();//释放资源 sf.close();//释放资源 } @Test //session的删除 //删除id为1的customer东西 public void fun5(){ //1 创建,挪用空参结构 Configuration conf = new Configuration().configure(); //2 按照配置信息,创建 SessionFactory东西 SessionFactory sf = conf.buildSessionFactory(); //3 获得session Session session = sf.openSession(); //4 session获得操纵事务的Transaction东西 //获得操纵事务的Transaction东西 Transaction tx = session.getTransaction(); tx.begin(); //开启事务并获得操纵事务的Transaction东西(建议使用) Transaction tx2 = session.beginTransaction(); //---------------------------------------------- //1 获得要改削的东西 Customer c = session.get(Customer.class, 1l); //2 挪用delete删除东西 session.delete(c); //---------------------------------------------- tx2.commit();//提交事务 session.close();//释放资源 sf.close();//释放资源 } }
,