爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
数据库教程
Hibernate入门BLOG [2、封装拿到数据库配置session对象、并且执行操作]
Hibernate入门BLOG [2、封装拿到数据库配置session对象、并且执行操作]
日期:2014-05-16 浏览次数:20681 次
Hibernate入门BLOG [二、封装拿到数据库配置session对象、并且执行操作]
在上文中我们自己首先单独配置了hibernate的相关xml文件和Java文件。而且还实现了操作案例。但是在实际应用中我们不可能每一次都去获取Configuration对象然后去构建sessionFactory对象。这会浪费资源而且影响效率。所以这次我们就将hibernate初始化的一系列代码封装起来并且执行操作的案例。请看下面附注释的代码 public final class HibernateUtil { //设计模式的体现。将只执行一次的代码块放到静态块里面。在系统访问HibernateUtil //的时候。装载虚拟机,静态代码块将会被执行。这样将sf赋值。然后我们就可以拿到了 private static SessionFactory sf; private HibernateUtil(){} //当虚拟机在加载的时候会执行这段代码。之后不会执行了 static{ //hibernate的初始化,非常耗时、它读取配置文件。一般只执行一次 Configuration cfg = new Configuration(); //读取配置文件。 cfg.configure(); //类似于jdbc中的DriverManager sf = cfg.buildSessionFactory(); } //包装hibernate的返回对象。 public static Session getSession(){ return sf.openSession(); } } 2、调用封装好的方法完成操作 public class Base { public static void main(String[] args) { //赋值要操作的对象 User user = new User(); user.setName("zhanglei"); user.setBirthday(new Date()); //调用静态方法去完成操作。不用写过多的代码 Base.addObj(user); } //添加操作很标准的写法 static void addObj(Object obj){ Session s = null; Transaction tx = null; try{ //通过封装的类拿到session对象 s = HibernateUtil.getSession(); //打开事务 tx = s.beginTransaction(); //执行操作 s.save(obj); tx.commit(); }catch(HibernateException e){ //判断事务有没有完全提交的判断方式 if(tx != null){ tx.rollback(); throw e; } }finally{ //利用finally关闭session对象 if(s != null){ s.close(); } } } }
上一篇: CCNP_route札记6 关于OSPF中的hello和DBD顺序
下一篇: jdbc经验-1- 第一个程序细讲
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
六:sorted set类型
深入显出Mybatis-与Spring集成
实验告诉您 where 条件中 or 与 between 误导性用法(拒绝转载,违者必究)
教你设计大型Oracle数据库
PLSQLDev工具安插到oracle数据库插入不了中文字符解决
Oracle10g的起步过程
iBatis中施用timestamp类型的办法
必须使用DBMS_AQADM.DROP_QUEUE_TABLE删除队列表的解决办法
优化-数据库
推荐阅读
更多>
Oracle新建用户,角色,受权,建表空间
oracle查询用户全部表记录数
javaeye下一些hbase讲解的链接
为数据表建立索引前要思考的有关问题(从某书摘抄,为自己做个备份)
[Sql server]数据备份的三个恢复模型
JavaEE5学习札记06-EJB之消息驱动Bean(MDB)总结-1
mac或linux下JDBC的容易实现,图文介绍(附测试源码)
可取性、适用性、可行性:内存储器计算技术的影响
设立主从服务器
日文字符中常见的乱码景况-正波浪线“~”
Oracle对大对象门类操作:blob,clob,nclob,bfile
怎么用Powerdesigner的PDM(物理数据模型)生成数据库
Java联接sql2005数据库三步曲
mysql数据库java端查询List的排行排序方法
关系形式规范化实例析解
oracle顶用START WITH.CONNECT BY PRIOR子句实现递归查询
Hibernate配置文件三拇指定MySQL数据库的编码方式
BoneCP 0.6.4公布,高效的Java数据库连接池
查看数据库中有哪些活动的事宜,对应的会话id,执行的语句
优化数据库大幅度增高Oracle的性能