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();
 }
}