[Hibernate开发之路](3)基础配置
一 JDBC链接
通常你希望SessionFactory来为你创建和缓存(pool)JDBC连接. 假设你採用这样的方式, 仅仅须要例如以下例所看到的那样,打开一个Session:
Session session = sessions.openSession(); // open a new Session
一旦你须要进行数据訪问时, 就会从连接池(connection pool)获得一个JDBC连接.
为了使这样的方式工作起来, 我们须要向Hibernate传递一些JDBC连接的属性. 我们如今将描写叙述JDBC连接配置中最重要的设置.
假设你设置例如以下属性。Hibernate将使用java.sql.DriverManager来获得(和缓存)JDBC连接 :
Hibernate JDBC属性
但Hibernate自带的连接池算法相当不成熟. 它仅仅是为了让你快些上手,并不适合用于产品系统或性能測试中。 出于最佳性能和稳定性考虑你应该使用第三方的连接池。
仅仅须要用特定连接池的设置替换 hibernate.connection.pool_size就可以。这将关闭Hibernate自带的连接池. 比如, 你可能会想用C3P0. C3P0是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib文件夹下。 假设你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接. 假设你更原意使用Proxool, 请參考发 行包中的hibernate.properties并到Hibernate站点获取很多其它的信息.
二 可选的配置属性
有大量属性能用来控制Hibernate在执行期的行为. 它们都是可选的, 并拥有适当的默认值.
Hibernate配置属性
三 SQL方言
你应当总是为你的数据库将hibernate.dialect属性设置成正确的 org.hibernate.dialect.Dialect子类. 假设你指定一种方言, Hibernate将为上面列出的一些属性使用合理的默认值, 为你省去了手工指定它们的功夫.
Hibernate SQL方言 (hibernate.dialect)
四 XML配置文件
还有一个配置方法是在hibernate.cfg.xml文件里指定一套完整的配置. 这个文件能够当成hibernate.properties的替代。
若两个文件同一时候存在。它将覆盖前者的属性.
XML配置文件被默认是放在CLASSPATH的根文件夹下. 这是一个样例:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <!-- 以/jndi/name绑定到JNDI的SessionFactory实例 -->
<session-factory
name="java:hibernate/SessionFactory"> <!-- 属性 -->
<property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JTATransactionFactory
</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property> <!-- 映射定义文件 -->
<mapping resource="org/hibernate/auction/Item.hbm.xml"/>
<mapping resource="org/hibernate/auction/Bid.hbm.xml"/> <!-- 缓存设置 -->
<class-cache class="org.hibernate.auction.Item" usage="read-write"/>
<class-cache class="org.hibernate.auction.Bid" usage="read-only"/>
<collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/> </session-factory> </hibernate-configuration>
如你所见, 这种方法优势在于,在配置文件里指出了映射定义文件的名字. 一旦你须要调整Hibernate的缓存, hibernate.cfg.xml也是更方便. 注意,使用hibernate.properties还是 hibernate.cfg.xml全然是由你来决定, 除了上面提到的XML语法的优势之外, 两者是等价的.
使用XML配置,使得启动Hibernate变的异常简单, 例如以下所看到的,一行代码就能够搞定:
SessionFactory sf = new Configuration().configure().buildSessionFactory();
你能够使用例如以下代码来加入一个不同的XML配置文件
SessionFactory sf = new Configuration()
.configure("catdb.cfg.xml")
.buildSessionFactory();
[Hibernate开发之路](3)基础配置的更多相关文章
- Java开发学习(三)----Bean基础配置及其作用范围
一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...
- [Hibernate开发之路](4)ID生成策略
一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段 ...
- Stardew Valley(星露谷物语)Mod开发之路 1环境配置
首先来说明一下,我写这个章节本身也是对学习过程的记录,主要参考了http://canimod.com/guides/creating-a-smapi-mod中的内容.也推荐大家看看. *这些是我的开发 ...
- [Hibernate开发之路](2)Hibernate问题
(1)数据库驱动问题 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j: ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Hibernate学习笔记2.1(Hibernate基础配置)
Hibernate基础配置 1.<property name="hbm2ddl.auto">update</property> 在SessionFactor ...
- WEB开发之路——基础部分
WEB开发之路 受BBC的<BBC: Brain Story>和<BBC: The Brain - A Secret History>的影响,我一直有志于探究人类大脑,2015 ...
- 前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化
前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Do ...
- python 小白(无编程基础,无计算机基础)的开发之路 day1
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
随机推荐
- Wannafly挑战赛3
B遇见 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 65536K,其他语言131072K64bit IO Format: %lld 题目描述 A和B在同一条路上,他们之间的距离为 k ...
- linux下编译静态库openssl
先编译zlib cmake . -DCMAKE_INSTALL_PREFIX=/depends make make install 然后编译openssl ./config zlib no-rc5 n ...
- C# Settings.settings的用处
1.定义 在Settings.settings文件中定义配置字段.把作用范围定义为:User则运行时可更改,Applicatiion则运行时不可更改.可以使用数据网格视图,很方便: 2.读取配置值 t ...
- spring入门到放弃——spring事务管理
Spring事务提供了两种管理的的方式:编程式事务和声明式事务 简单回顾下事务: 事务:逻辑上的一组操作,组成操作的各个单元,要么全部成功,要么全部失败. 事务特性: 原子性:一个事务包含的各个操作单 ...
- Qtree
Qtree Ⅰ 题意:https://vjudge.net/problem/SPOJ-QTREE 带修路径查询最大边权 sol :树链剖分,之后每条重链就是一个连续的区间,拿线段树维护即可 简单讲讲 ...
- 关于sudo dpkg-divert –local –rename –add /sbin/initctl导致的开机无图标解决方法
背景: ubutnu16.04 使用status docker,发现 无法连接到 status: Unable to connect to Upstart: Failed to connect to ...
- Java众神之路(1)-语言介绍
Java语言介绍 1.Java的历史 我个人认为,学习一种技术,不止要关注技术本身,也应该去了解一下它的发展史,这一方面是对技术本身的尊重,另一方面也是希望能够通过该技术的发展历史推测出其未来可能的发 ...
- P2420 让我们异或吧 (树链剖分,异或前缀和)
题目描述 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中-xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B是否是男生)=A和B是否能 ...
- python 缺少包
https://pypi.python.org/pypi/pdfminer/20140328 到这里下载相应的包,再进行安装. tar –xivf pybloomfilter-1.0 cd py ...
- 【前端学习笔记】2015-09-02~~~~ 关于filter()匹配的使用
关于filter的使用先记录以下几点: 1.filter(':even')遍历所有元素,找到index为偶数的元素.. ps: filter(':odd') odd----奇数 eve ...