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进行关闭
}
}
}

Hibernate使用套路,新手请进的更多相关文章

  1. java JSP(原创新手可进)

    一. 同等编程方式jsp与asp.net的不同 app需要做一个简单网站,和几个用户推广链接,所以涉及到web这块开发,原本昨天想直接使用asp.net来做,但是之后放弃了这个想法,因为数据访问接口都 ...

  2. 什么是RST包,什么是三次握手,什么是四次握手 ---请进

    一.RST包.本人学习后总结:RST包用于强制关闭TCP链接. TCP连接关闭的正常方法是四次握手.但四次握手不是关闭TCP连接的唯一方法. 有时,如果主机需要尽快关闭连接(或连接超时,端口或主机不可 ...

  3. python如何玩“跳一跳”!(windows安桌版本请进!)

    最近"跳一跳",很火爆,有木有? 看了一下网上的教程,动作搭建了一下环境,就可以用脚本自动跑起来啦!!! 下面说一下android手机的实现过程: 首先,是python环境的搭建 ...

  4. alidoing --使用JS实现多语言框架、喜欢的请进、、瓦特平台!

    大家好! 多语言实现的案例:http://alidoing.com/或者http://www.alidoing.com/ 图:切换语言界面 JS代码实现: 1.首先新建一个对象langobj,当然对象 ...

  5. 从FPGA搞定OV7670 VGA显示 移植到 STM32F10x TFT显示 总结及疑问(高手请进)

    OV7670不愧是最便宜的摄像头了最大显示像素:640*480(在VGA显示器上显示效果还不赖,用usb模块采集显示依然显著) 第一步:VGA显示 视频图像(实时)FPGA+SDRAM+OV7670= ...

  6. 从测试点点君跨入年薪30W的自动化逍遥君的人生感悟--测试君请进,绝对让你不虚此行!

    一.前言:人生感悟 人生,就是一个苏醒的过程,生命就是一次历练,从鲜衣怒马,到银碗里盛雪,从青葱岁月到白发染鬓,人总是会在经历中成长,在成长中懂得,在懂得里看透,看透而不说透,从而一步一步的走向成熟, ...

  7. [已招满,谢谢关注]Sogou招聘C#开发人员,有意者请进

    职位名称:c#开发工程师 工作地点:搜狐网络大厦 职责:搜狗商业平台桌面产品 职位要求: 1. 计算机或者相关专业本科或以上学历 2. 精通c#,两年以上实际项目开发经验 3. 熟悉C/S开发架构和设 ...

  8. jquery-图片轮播(新手请大神指教一下)

    这是我刚学jquery写的,感觉效果不是很好. #scrollPics{ height: 330px; width: 980px; margin-bottom: 10px; overflow: hid ...

  9. WINDOWS权限大牛们,请进

    大家好, 我遇到一个问题,我的一台windows7去访问另一个电脑的共享,输入账号密码后,老是说密码不正确.而其他电脑去访问共享,密码账号密码后都OK 我想知道原因是什么?

随机推荐

  1. [模板] Manacher(马拉车)算法

    用途 求回文子串 做法 先考虑回文子串以某字符为中心的情况,即长度为奇数 推着做,记rad[i]为以i位置为中心的最大半径(包含中点) 考虑怎么求rad[i].找之前的一个右端点最靠右的位置p,设它的 ...

  2. 【linux】linux查找功能

    linux系统中我们经常会需要查找某些文件,当有时候我们不确定一个文件的位置,比如某服务配置文件具体路径,自己没有头绪去寻找的话会很难找,也会耽误时间.linux就提供了很多命令,find,locat ...

  3. sublime text3 replace和反向引用

    实用小技巧,主要用于替换爬虫请求头,节省时间. chrome原信息显示: UserID: sds UserPass: sdsd codeKey: 350753 code: 277 B1: 提 subl ...

  4. CF1142C U2(计算几何,凸包)

    题目大意:平面上有 $n$ 个点,第 $i$ 个点是 $(x_i,y_i)$.问有多少条抛物线(二次项系数为 $1$),经过这些点中不同的两个点,并且内部(不含边界)没有任何这些点.重合的抛物线只算一 ...

  5. Docker部署Jenkins测试环境

    安装docker环境 yum install epel-release -y && yum install docker -y 如果是高手需要docker-compose的话就再装个d ...

  6. 讲道理,为什么分布式一定要有Redis?

    考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.所以我斗胆以 Redis 为题材,对  ...

  7. a超链接设置样式

    /* divcss5对象内 a超链接设置样式 */ .divcss5 a:link{ color:#F00}/* 链接默认为红色 */ .divcss5 a:hover{ color:#000}/*  ...

  8. 【洛谷P1303 A*B Problem】

    题目描述 求两数的积. 输入输出格式 输入格式: 两行,两个数. 输出格式: 积 输入输出样例 输入样例#1: 1 2 输出样例#1: 2 说明 每个数字不超过10^2000,需用高精 emm,显然本 ...

  9. Vue+Django2.0 restframework打造前后端分离的生鲜电商项目(1)

    1.开发环境配置 Windows7 64位旗舰版 python3.6 node.js mysql navicat pycharm webstorm或vscode 2.项目初始化 新版的pycharm很 ...

  10. Java programming problems

    1.使用循环把26个字母按字典顺序存入数组,在不使用另外数组的情况下将其逆序存放,在根据处理后的字符数组创建一个字符串并输出 public static void main(String[] args ...