(properties做配置文件)
前言:文章的示例代码是在普通Java工程中简单调用Hibernate执行持久层的实现。用于理解Hibernate对JDBC的轻量级封装。总共八个步骤,可对应JDBC传统六个步骤来一起理解。当然,仅用于理解和参考,不可直接用于项目中。没有对关闭事务和关闭Session进行异常处理。
Session的创建没有放在static块中的说明。
先说明SessionFactory接口:一个SessionFactory对应一个数据存储源。SessionFactory是线程安全的,这意味着它的一个示例可以被应用的多个线程享用。SessionFactory是重量级的,这意味着不能被随意创建或销毁它的实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。
在说明Session接口:不是线程安全的,因此在设计软件架构时,应该避免多个线程共享一个Session实例。Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多资源。这意味着在程序中可以经常创建或销毁Session实例。例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.hibernate.Transaction;
- import org.hibernate.cfg.Configuration;
- import edu.hibernatetest.domain.po.User;
- publicclassUserHibernateDemo {
- static SessionFactorysessionFactory;
- static{
- // 步骤一:创建Configuration--读取Hibernate.properties内容到内存
- Configurationconfiguration = newConfiguration();
- // 步骤二:加载域对象--读取Xxx.hbm.xml内容到内存
- configuration.addClass(User.class);
- // 步骤三:创建SessionFactory实例
- sessionFactory= configuration.buildSessionFactory();
- }
- publicstaticvoid main(String[] args) {
- // 步骤四:创建Session
- Sessionsession = sessionFactory.openSession();
- // 步骤五:开启事务
- Transactiontransaction= session.beginTransaction();;
- // 步骤六:执行事务
- User user =new User();
- user.setLoginname("fengj");
- user.setUsername("凤九");
- user.setPassword("123");
- user.setPicurl(null);
- session.save(user);
- // 步骤七:关闭事务
- transaction.commit();
- // 步骤八:关闭Session
- session.close();
- }
- }