1:Configuration :配置管理类对象
1.1:config.configure():
加载主配置文件的方法(hibernate.cfg.xml) ,默认加载src/hibernate.cfg.xml
1.2:config.configure(“cn/config/hibernate.cfg.xml”);
加载指定路径下指定名称的主配置文件
1.3:config.buildSessionFactory();
创建session的工厂对象
2: SessionFactory :session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)
2.1:sf.openSession();
创建一个sesison对象
2.2:sf.getCurrentSession();
创建session或取出session对象
3:Session:
3.1:session对象维护了一个连接(Connection), 代表了与数据库连接的会话。
a:保存的方法:session.save(对象);
b:更新的方法:session.update(对象);
注意:更新必须写上主键的名称,其他字段都要设置值;
c:主键查询的方法:session.get(对象,主键);/session.load(对象,主键);load方法这个支持懒加载。
d:保存或者更新:session.saveOrUpdate(对象);如果没有主键就保存,存在主键就更新;保存或者更新的方法,没有设置主键,执行保存,有设置主键,执行更新操作,如果设置主键不存在,就报错;
e:删除的方法:session.delete(对象);删除必须给主键;
3.2:Hibernate最重要的对象:
只用使用hibernate与数据库操作,都用到这个对象
3.3:session.beginTransaction();
开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!
3.4:Transaction:hibernate事务对象;
使用Hibernate api 之常见的类(配置类,会话工厂类,会话类)案例:
《这里只是列举了Hibernate的三个常见类,其他配置文件和实体类之前的博客写过,这里重点介绍Hibernate的三个常见类》:
1 package com.bie.test; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.Transaction; 6 import org.hibernate.cfg.Configuration; 7 import org.junit.Test; 8 9 import com.bie.po.User; 10 11 /** 12 * @author BieHongLi 13 * @version 创建时间:2017年3月8日 下午5:28:35 14 * 15 */ 16 public class HelloTest2 { 17 18 //SessionFactory代表整个配置文件,所以没必要加载多次,放到全局即可 19 private static SessionFactory sf; 20 static{ 21 //1:创建配置管理类对象 22 Configuration config=new Configuration(); 23 //加载配置文件,(默认加载/src/hibernate.cfg.xml) 24 config.configure(); 25 26 //2:根据加载的配置管理类对象,创建SessionFactory对象 27 sf=config.buildSessionFactory(); 28 29 //简介写法,写到一行里面 30 //sf=new Configuration().configure().buildSessionFactory(); 31 } 32 @Test 33 public void testHello(){ 34 //对象 35 User user=new User(); 36 user.setName("张三"); 37 user.setPassword("123456"); 38 user.setEmail("1748741329@qq.com"); 39 user.setPhone("15236083005"); 40 41 //3:根据sesson的工厂创建session对象 42 Session session = sf.openSession(); 43 44 //开启事务 45 Transaction tx = session.beginTransaction(); 46 //执行操作 47 session.save(user); 48 //提交事务 49 tx.commit(); 50 //关闭事务 51 session.close(); 52 sf.close(); 53 } 54 55 }
Hibernate三个常见类,配置类,会话工厂类,会话类,over!!!