普通Java工程中调用Hibernate的8个执行步骤(properties做配置文件)

来源:互联网 发布:淘宝网舞蹈演出服装 编辑:程序博客网 时间:2024/06/04 20:14

普通Java工程中调用hibernate的8个执行步骤

(properties做配置文件)


前言:文章的示例代码是在普通Java工程中简单调用Hibernate执行持久层的实现。用于理解Hibernate对JDBC的轻量级封装。总共八个步骤,可对应JDBC传统六个步骤来一起理解。当然,仅用于理解和参考,不可直接用于项目中。没有对关闭事务和关闭Session进行异常处理。

 

Session的创建没有放在static块中的说明。

 

先说明SessionFactory接口:一个SessionFactory对应一个数据存储源。SessionFactory是线程安全的,这意味着它的一个示例可以被应用的多个线程享用。SessionFactory是重量级的,这意味着不能被随意创建或销毁它的实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。

 

在说明Session接口:不是线程安全的,因此在设计软件架构时,应该避免多个线程共享一个Session实例。Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多资源。这意味着在程序中可以经常创建或销毁Session实例。例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。

 

 

 

 生气生气生气生气生气

  1. import org.hibernate.Session;
  2. import org.hibernate.SessionFactory;
  3. import org.hibernate.Transaction;
  4. import org.hibernate.cfg.Configuration;
  5.  
  6. import edu.hibernatetest.domain.po.User;
  7.  
  8. publicclassUserHibernateDemo {
  9.   
  10.    static SessionFactorysessionFactory;
  11.   
  12.    static{
  13.       // 步骤一:创建Configuration--读取Hibernate.properties内容到内存
  14.       Configurationconfiguration = newConfiguration();
  15.       // 步骤二:加载域对象--读取Xxx.hbm.xml内容到内存
  16.       configuration.addClass(User.class);
  17.      
  18.       // 步骤三:创建SessionFactory实例
  19.       sessionFactory= configuration.buildSessionFactory();
  20.    }
  21.   
  22.    publicstaticvoid main(String[] args) {
  23.       // 步骤四:创建Session
  24.       Sessionsession = sessionFactory.openSession();
  25.      
  26.       // 步骤五:开启事务
  27.       Transactiontransaction= session.beginTransaction();;
  28.      
  29.       // 步骤六:执行事务
  30.       User user =new User();
  31.       user.setLoginname("fengj");
  32.       user.setUsername("凤九");
  33.       user.setPassword("123");
  34.       user.setPicurl(null);
  35.       session.save(user);
  36.      
  37.       // 步骤七:关闭事务
  38.       transaction.commit();
  39.       // 步骤八:关闭Session
  40.       session.close();
  41.      
  42.      
  43.    }
  44.  
  45. }
0 0
原创粉丝点击