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