Hibernate學習計劃。
Hibernate 6.20--7.20

(1)6.20-6.25:完成學習Hibernate的所有基本概念;
(2)6.26-6.30:通過一些實例熟悉hibernate的應用, 必要的時候查看源代碼;
(3)7.1-7.10:實現一個簡單的論壇系統。
(4)7.11-7.20:實現一個簡單的ORM系統。

學習計劃雖然有點簡單,不過總歸計劃出來了,就按照這個來吧,一定要堅持下來

Hibernate學習筆記--Configuration,SessionFactory,Session

Configuration:負責管理Hibernate的配置信息,這些配置信息都是從配置文件hibernate.cfg.xml或者Hibernate.
properties讀取的,當然也可以自定義文件名稱,只要在實例化Configuration的時候指定具體的路徑就可以了;
SessionFactiory:Configuration的實例會根據當前的配置信息,構造SessionFactory實例。SessionFactory是線程安全的,一般情況下一個應用中一個數據庫共享一個SessionFactory實例。
Session:一般的持久化方法(CRUD)都是通過Session來調用的,Session是非線程安全的。

下面這個實例是我用Hibernate編寫的第一個實例,當然主要的作用是我自己做個筆記,以后忘了的時候可以看看
package org.william.First;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.william.xml.*;


/**
?* @author wangliang138840
?*
?*/
public class BaseCRUD{
?
?private static Configuration config;
?private static SessionFactory sessionFactory;
?private Session session;
?
?public BaseCRUD(){
??init();
?}
?
?private void init(){
??try{
???config = new Configuration().configure();
???sessionFactory = config.buildSessionFactory();
???session = sessionFactory.openSession();
??}catch(Exception e){
???e.printStackTrace();
??}
?}
?
?public void close(){
??try{
???session.close();
???sessionFactory.close();
??}catch(Exception e){
???e.printStackTrace();
??}
?}
?
?public static void main(String args[]){
??BaseCRUD baseCRUD = new BaseCRUD();
??Customer customer = new Customer();
??Transaction tx = baseCRUD.session.beginTransaction();
??customer.setName("wangliang");
??baseCRUD.session.save(customer);
??tx.commit();
??
??customer = (Customer)baseCRUD.session.get(Customer.class, new Long(1));
??System.out.println(customer.getPeopleID());
??
??tx = baseCRUD.session.beginTransaction();
??baseCRUD.session.delete(customer);
??tx.commit();
??
??baseCRUD.close();
?}
}