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. redis 从入门到遗忘

    Key操作 keys * *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 exists key 存在返回1,不存在返回0 type key rename oldkey ne ...

  2. Freescale 车身控制模块(BCM) 解决方案

    中国汽车业已成为全球第一市场,标志着中国汽车产业进入了白热化竞争时代,因此,人们对汽车的操控性,安全性,易用性,舒适性,以及智能化要求也越来越高,更大的空间需求和更多的零部件因而产生了冲突,这就要求汽 ...

  3. Python基础之文件和目录操作

    1 .文件操作 1.1 文件打开和关闭 在python, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件. # 打开文件 f = open('test.txt', 'w') ...

  4. jquery 事件的绑定,触发和解绑

    js和jquery绑定的区别? HTML或原生js是单一对应绑定的,绑多了只留最后一个.jQuery是追加绑定的,绑多少执行多少.这个在每一本jQuery的书中都是首先提到的事情. jquery绑定与 ...

  5. django基于中间件的IP访问频率控制

    一.中间件的代码 注意:成功时返回的是None,那样才会走视图层,返回httpresponse就直接出去了 import time from django.utils.deprecation impo ...

  6. Spring3 (事务管理)

    简介: 1.事务管理.2.整合Junit.3.整和Web 1       事务管理 1.1   回顾事务 l  事务:一组业务操作ABCD,要么全部成功,要么全部不成功. l  特性:ACID 原子性 ...

  7. firfox中"content-disposition", "attachment;filename=“+filename不能显示文件名字

    一般要在浏览器中显示文件名,可以使用以下文件名 // 设置文件名的编码方式,使得文件的名字能够正常安全的显示. filename = URLEncoder.encode(filename, " ...

  8. io系列之其他事项

    二.对IO异常的处理. io操作中,只要涉及到底层操作的就必须进行 io异常处理. IOException 是IO操作中必须处理的异常. 示例: class IOExceptionTest { pub ...

  9. 应用实战:从Redis到Aerospike,我们踩了这些坑

    个推专注为开发者们提供消息推送服务多年.通过个推SDK,手机终端与服务器建立长连接,维持在线状态.然而在网络异常等情况下,消息无法实时送达到终端用户,因而推送服务器建立了一份离线消息列表,以待用户重新 ...

  10. python3: 爬虫---- urllib, beautifulsoup

    最近晚上学习爬虫,首先从基本的开始: python3 将urllib,urllib2集成到urllib中了, urllib可以对指定的网页进行请求下载,  beautifulsoup 可以从杂乱的ht ...