[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();
时间: 2024-10-08 20:50:18

[Hibernate开发之路](3)基础配置的相关文章

[Hibernate开发之路](4)ID生成策略

一 对象关系数据库映射之Id 被映射的类必须定义相应数据库表主键字段.大多数类有一个JavaBeans风格的属性, 为每个实例包括唯一的标识. <id> 元素定义了该属性到数据库表主键字段的映射. <id name="propertyName" type="typename" column="column_name" unsaved-value="null|any|none|undefined|id_value&quo

[Hibernate开发之路](2)Hibernate问题

(1)数据库驱动问题 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.m

大数据开发之路---Java基础(一)

因为最近工作用到java,所以了解一些java的知识,当然这篇文章也是适用于有语言基础的,因为是用于快速熟悉java的一些语法规范,并没有整理细节的内容,零基础的不适合看这篇文章 Hello world 老规矩先来hello world代码: package study_java.ex01; public class HelloWorld { public static void main(String[] args){ System.out.println("hello world"

Hibernate基础配置

在hibernate.cfg.xml中的基础配置: show_sql format_sql hbm2ddl.auto :有四个选项  validate . update . create . create-drop create :数据库中没有表的话会自动创建. update: 原来有表,但是在配置文件中表的结构修改了,会自动更新数据库中的表. 通过配置文件或者annotation自动建表 搭建日志环境并配置显示DDL语句(建表语句) 搭建Junit环境(注意Junit的Bug) 表名和类名不同

HTML5移动开发之路(33)—— jqMobi基础

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(33)-- jqMobi基础 一.什么是jqMobi jqMobi是由appMobi针对HTML5浏览器和移动设备开发的JavaScript框架,是个极快速的查询选择库,支持W3C查询. 版本 jqMobi源码最初在2012年1月份推出,基于MIT/X11许可证,托管在GitHub上,开发者可参与并通过插件不断改进该框架. 2012年3月13日,jqMobi 1.0版本正式发布.现在最新的版本是jqMobi

学习开发Android--eclipse基础配置及实例

今天我们来完成一个自己的小程序. 首先,打开eclipse进行一下基础的配置. 打开eclipse-->window-->Preferences来配置一下常用的辅助. 首先是字体,现将编写程序时的字体调大一下,为了保护眼睛. 然后我们将行号显示出来. 接下来是Java项,根据个人习惯,来配置变成的格式. 我个人习惯,例如大括号另起一行.每个语句另起一行等. 然后,将标签调至Line Wrapping,设置里边的Maximun line width,这个属性是:如果当前每行输入的宽度达到了预设值

WEB开发之路——基础部分

WEB开发之路 受BBC的<BBC: Brain Story>和<BBC: The Brain - A Secret History>的影响,我一直有志于探究人类大脑,2015年的暑假,到华南理工大学的国家重点实验室-生物医学工程实验室,实习了一个月的时间,学习大脑图像处理—Matlab语言来处理大脑的灰质和白质的图像,核心知识在计算机方面,只有掌握计算机这门工具,才能更好的分析大脑.因此,在我的坚决要求之下,2016年的暑假,家人给我联系了一家软件公司实习,从最有活力的WEB开发

前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数据初始化

前端环境配置 项目介绍文章:前端基于react,后端基于.net core2.0的开发之路(1) 介绍 1.VSCode安装 下载地址:https://code.visualstudio.com/Download 2.node下载 下载地址:https://nodejs.org/en/ V8.9.1版本下载 3.cnpm安装 在安装完node后,npm默认就安装了,因为某种原因,npm下载组件包的速度太慢了,所以需要安装cnpm 安装命令 npm install -g cnpm --regist

从零开始搭建系统3.6——基础配置组件开发

从零开始搭建系统3.6--基础配置组件开发 原文地址:https://www.cnblogs.com/provence666/p/8638604.html