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!!!