普通Java工程中调用Hibernate的8个执行步骤(properties做配置文件)
2013-12-29 00:26
393 查看
普通Java工程中调用Hibernate的8个执行步骤
(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();
}
}
如有好的建议,可发至笔者邮箱:fzb_xxzy@163.com
(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();
}
}
如有好的建议,可发至笔者邮箱:fzb_xxzy@163.com
相关文章推荐
- Java实现可乐瓶问题
- java代码--------实现随机输出100个随机数,10行,0--到9的数字
- java jacob 操作word 文档,进行写操作,如生成表格,添加 图片(这个不错,可以拿来直接用,非常好)
- 配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决
- eclipse如何导入sql server2005中的jar包
- Java学习笔记----------------RMI操作
- J2EE学习中一些值得研究的开源项目
- java并发学习之CountDownLatch
- JAVA内部类(转)
- java代码--------打印三角形
- Java运算符优先级及结合性
- 第三十三天【java虐我千百遍,我待java如初恋】
- java的垃圾回收机制
- JAVA笔记【20131228】
- PI JAVA SERVER,启动失败Heap OutOfMemory
- Spring常用注解
- Struts2 学习记录(3)
- Spring Security教程(1)----SpringSecurity3.2环境搭建
- java代码换行
- struts1配置文件例子(切记建立工程时,不要带上下文路径)