Hibernate使用套路,新手请进
2024-08-31 01:18:09
package cn.zhaoqinrong.MainApp; import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import java.io.File; public class HibTest {
private Logger logger=Logger.getLogger(HibTest.class);
public void firstshow(){
Configuration conf=null;//加载Hibernate的配置文件
SessionFactory sf=null;//创建session
Session session=null;//session实施持久化操作的关键API
Transaction tx=null;//事务控制 try {
//1.创建Configuration的实例,并加载配置文件
conf=new Configuration().configure("hibernate.cfg.xml");
logger.debug("加载配置文件成功");
//获取sessionFactory工厂实例
sf=conf.buildSessionFactory();
logger.debug("创建sessionFactory实例");
//通过sessionFactory来获取session对象
session=sf.getCurrentSession();//推荐使用
/*
* SessionFactory.openSession来得到的session需要手工关闭,hibernate不会对其进行管理
* SessionFactory.getcurrentSession()得到的session由hibernate进行管理,不需要手动进行关闭,事务提交后,会话会自动关闭
* 在配置文件中配置 <property name="current_session_context_class">thread</property>,将session
* 与线程进行绑定
*
* */
logger.debug("创建session实例");
tx= session.beginTransaction();
logger.debug("事务开启");
//2.加载配置文件
//3.
} catch (HibernateException e) {
e.printStackTrace();
if(tx!=null){
tx.rollback();//session会自动关闭
}
} finally {
//如果使用open打开的session.必须使用finally对session进行关闭
}
}
}
package cn.zhaoqinrong.MainApp; import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import java.io.File; public class HibTest {
private Logger logger=Logger.getLogger(HibTest.class);
public void firstshow(){
Configuration conf=null;//加载Hibernate的配置文件
SessionFactory sf=null;//创建session
Session session=null;//session实施持久化操作的关键API
Transaction tx=null;//事务控制 try {
//1.创建Configuration的实例,并加载配置文件
conf=new Configuration().configure("hibernate.cfg.xml");
logger.debug("加载配置文件成功");
//获取sessionFactory工厂实例
sf=conf.buildSessionFactory();
logger.debug("创建sessionFactory实例");
//通过sessionFactory来获取session对象
session=sf.getCurrentSession();//推荐使用
/*
* SessionFactory.openSession来得到的session需要手工关闭,hibernate不会对其进行管理
* SessionFactory.getcurrentSession()得到的session由hibernate进行管理,不需要手动进行关闭,事务提交后,会话会自动关闭
* 在配置文件中配置 <property name="current_session_context_class">thread</property>,将session
* 与线程进行绑定
*
* */
logger.debug("创建session实例");
tx= session.beginTransaction();
logger.debug("事务开启");
//2.加载配置文件
//3.
} catch (HibernateException e) {
e.printStackTrace();
if(tx!=null){
tx.rollback();//session会自动关闭
}
} finally {
//如果使用open打开的session.必须使用finally对session进行关闭
}
}
}
最新文章
- 获取打开的Word文档
- iOS之开发中常用的颜色及其对应的RGB值
- Android基于mAppWidget实现手绘地图(十六)–处理一次触摸多个地图对象
- 数据字典生成工具之旅(8):SQL查询表的约束默认值等信息
- Andriod Dialog 加载框 自定义,公用
- hdu 5154 Harry and Magical Computer 拓扑排序
- SharePoint开发 - 自定义导航菜单(三)附其他代码
- Understanding Service Types
- (1)opengl-nehe 4种框架
- Nginx 1.4.7图片缓存服务器
- Javascript String类的属性及方法
- matlab 函数说明--waitforbuttonpress
- SQL语句宝典
- js事件底层原理探究
- ADO.NET复习总结(6)-断开式数据操作
- Cygwin 编译 ffmpeg
- Callable和Future出现的原因
- 什么是python的全局解释锁(GIL)
- 在CentOS 6.3中安装与配置cmake
- Eclipse查看Servlet源码
热门文章
- 「SDOI2014」重建 解题报告
- centos7添加并挂载新硬盘
- Permissions 0755 for &#39;/home/lonecloud/.ssh/id_rsa&#39; are too open.
- 解题:CF622F The Sum of the k-th Powers
- 洛谷P3321 序列统计
- 【POJ2230】Watchcow
- bzoj3331 压力(圆方树)
- js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
- PHP快速排序算法
- Python之迭代器,生成器