本文主要是介绍Configuration,SessionFactory,Session,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Configuration,SessionFactory,Session
Configuration: 负责管理Hibernate的配置信息,这些配置信息都是从配置文件hibernate.cfg.xml或者Hibernate.
properties读取的,当然也可以自定义文件名称,只要在实例化Configuration的时候指定具体的路径就可以了;
SessionFactiory: Configuration的实例会根据当前的配置信息,构造SessionFactory实例。SessionFactory是线程安全的,一般情况下一个应用中一个数据库共享一个SessionFactory实例。
Session: 一般的持久化方法(CRUD)都是通过Session来调用的,Session是非线程安全的。
例子代码:
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("wangyi");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();}
}
这篇关于Configuration,SessionFactory,Session的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!