Hibernate框架中的HibernateUtil
对于刚学习三层框架的人来说。每个配置文件和每个类。以及功能来说都非常新奇,时常就忘记了相关类的功能。
在这里建议编程就是要多加练习,才干熟能生巧。
这里说一下HibernateUtil类,在使用Hibernate的前提是须要去下载Hibernate项目,然后在lib目录以下把全部的. jar 包
COPY到你项目的lib目录下。
什么是HibernateUtil类,或者是说有什么功能?
Hibernate框架。主要解决的就是项目于数据库连接相关的问题,然而主要实现是须要靠配置文件里的代码与
类进行映射,才干够实现详细的功能。
那么HibernateUtil就是把代码读取配置文件的功能提取出来,由于每次读取操作都非常费时,这样一次就能够读取完成。
属于把一种功能抽象出来。这些代码是很耗时的,我们希望它仅仅做一次,一般我们希望它仅仅做一次。我们去做一个工具类去初始化
hibernate。工具类一般不希望被继承。别人来改写我的东西,一般用finally
<span style="font-size:18px;"> //载入配置文件信息默觉得hiberna.cfg.xml,假设不是的话那么就在config()方法里面去解析他
Configuration config = new Configuration();
config.config();
//创建工厂
SessionFactory factory = config.bulidSessionFactory();
//得到session
Sesssion session = factory.opensession();
//创建对象 public finally HibernateUtil(){
private static SessionFactory sessionFactory=null;
//私有的构造方法,防止别人new出来,典型的单例设计模式的引用
priavate HibernateUtil(){
}
static {
Configuration cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
} public static Session getSession(){
return sessionFactory.openSession();
} cfg.configure()这句话就会去读hibernate.cfg.xml里面的配置文件.假设你的配置文件不叫 hibernate,cfg.xml,你就要用cfg.configure("filename")来指定你须要的配置文件。 我们能够查看源码。在 使用cfg.configure()时:
public Configuration configure() throws HibernateException {
configure( "/hibernate.cfg.xml" );
return this;
} 会把hibernate.cfg.xml传进去,eclipse会在哪里去找这个hibernate.cfg.xml这个文件呢?会在classpath中去 找这个文件。 src这个文件夹不是classpath,可是它为什么能够找的到呢?由于scr文件夹终于都会编译到 classpath中去。 session就相似与jdbc的connection. ibernate 中先对来说比較规范的一个加入一个对象的写法
static void addPerson(Person person) {
Session session = null;
Transaction tx = null;
try {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
session.save(person); } catch (HibernateException e) {
if (tx != null)
tx.rollback();
throw e; //这个时候最好是把异常抛出去,由于假设仅仅是回滚的话,就没有不论什么提示给调用者。
} finally {
session.close();
}
}</span>
Hibernate框架中的HibernateUtil的更多相关文章
- hibernate框架中注意的几个问题
使用hibernate框架中,session.createSQLQuery创建sql语句的时候遇到的问题 1. select e.id,d.id from emp e,dept d where e. ...
- 关于HttpSession 和 Hibernate框架中 session异同点的简单解析
快速理解: HttpSession中的session是一个容器用来盛基于会话机制的信息. 比喻:我把钱放进银行的保险柜里. 解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器. Hi ...
- JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架
spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...
- 在Hibernate框架中详谈一级缓存
在学习Hibernate的过程中我们肯定会碰上一个名词---缓存,一直都听说缓存机制是Hibernate中的一个难点,它分为好几种,有一级缓存,二级缓存和查询缓存 今天呢,我就跟大家分享分享我所理解的 ...
- 在hibernate框架中配置显示sql语句
使用Hibernate的框架开发时,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true< ...
- Hibernate框架中Criteria语句
在Hibernate中有一种查询语句是Criteria查询(QBC查询),今天呢 我们就一个个的详细的跟大家一起探讨Criteria语句的相关知识点 案例前的准备 //插入测试数据,构建数据库 pub ...
- hibernate框架学习之核心API
ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernat ...
- Hibernate框架第二天
### Hibernate的持久化类 ### ---------- **什么是持久化类** 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为 ...
- 【Hibernate】hibernate框架的搭建
1, Hibernate 是什么 Hibernate是java应用程序与数据库交互的开发的框架. Hibernate是一个开源,轻量级的ORM(对象关系映射)工具. 2,Hibernate框架的优点 ...
随机推荐
- [bzoj1051][HAOI2006]受欢迎的牛——强连通分量
题目大意: 给定一个有向图,求能够被其他所有点访问到的点的个数. 题解: 首先,这个题我在洛谷上AC了,但是bzoj上WA,不知道为什么. 说一下解法. 首先,我们进行scc分解,可以知道, 如果一个 ...
- 简单粗暴!解决锐捷强制关闭VMware NAT Service的问题(图文教程)
众所周知毒瘤的锐捷会定时强制关闭NAT服务,导致虚拟机连不上网,进而你的虚拟机就成了孤儿,只能玩单机. 在一番百度后,得到了一种神仙破解办法.原理是把锐捷关闭服务时所用的搜索关键字改掉,这样锐捷就搜不 ...
- 刨根问底Objective-C Runtime(4)- 成员变量与属性
http://chun.tips/blog/2014/11/08/bao-gen-wen-di-objective[nil]c-runtime(4)[nil]-cheng-yuan-bian-lian ...
- CppCMS1.0.3 Build by VS2012
1.CppCMS简介 CppCMS是一个C++的Web开发框架(不是一个CMS).它不同于大多数其他Web开发框架,如巨蟒Django , Java的Servlets ,或C++ Wt因为它在设计和调 ...
- Kubernetes网络配置
#flannel#所有node都安装#下载https://github.com/coreos/flannel/releases#解压并把flanneld和mk-codker-opts.sh复制到/us ...
- 关于js拖拽功能,拖拽元素的position:fixed;left:0;right:0;样式引起左右拖动元素会出现落后鼠标移动距离的问题
被拖拽元素的样式如果为:position:fixed;left:0;right:0;(当时是为了让fixed定位的元素水平居中加的left:0;right:0;避免js动态计算定位的麻烦)时左右拖动会 ...
- VS2010安装包制作
最近对软件安装包制作研究了一下,下面记录了一种比较简单,不用写代码的方法. 1.New Project---->Other Project Types ---->Visual Studio ...
- selenium IE自动化问题汇总
驱动下载:http://selenium-release.storage.googleapis.com/index.html 没有修改IE的保护模式设置导致,通常看到报错信息如下: selenium. ...
- 2.2多线程(java学习笔记)线程状态及线程操作的相关方法
一.线程的状态 线程一般具有五种状态,即创建.就绪.运行.阻塞.终止. 它们之间的关系: 二.线程操作相关方法 1.设置和取得线程名称. 如果不设置线程名称,系统会自动分配线程名,一般格式为Threa ...
- 八. 输入输出(IO)操作1.输入输出基本概念
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息, ...