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