`

Hibernate4教程二:基本配置

 
阅读更多
可编程的配置方式一:
如果在配置cfg.xml的时候,不想在里面配置hbm.xml怎么办呢?可在程序里使用可编程的配置方式,也就是使用程序来指定在cfg.xml里面的配置信息,不推荐这种方式。如下:
Configuration cfg = new Configuration()
    .addResource("Item.hbm.xml")  //与该代码不在该路径下则需要些全路径;
    .addResource("Bid.hbm.xml");
 
一个替代方法(有时是更好选择)是,指定被映射的类,让Hibernate帮你寻找映射定义文件:
Configuration cfg = new Configuration()
    .addClass(org.hibernate.auction.Item.class)  //全限定名,但是该代码和class在同路径下可直接写Item.class
    .addClass(org.hibernate.auction.Bid.class);
这种方式消除了任何对文件名的硬编码。
 
可编程的配置方式二:
还可以通过编程的方式来指定配置属性:
Configuration cfg = new Configuration()
    .addClass(org.hibernate.auction.Item.class)
    .setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect")
    .setProperty("hibernate.connection.datasource", "java:comp/env/jdbc/test")
    .setProperty("hibernate.order_updates", "true");
其他可以传入配置属性的方式:
1:properties文件
2:xml文件
3:设置Java的系统属性,形如:java –Dproperty=value
另外要注意一点:
org.hibernate.cfg.Configuration 实例被设计成启动期间(startup-time)对象,一旦SessionFactory 创建完成它就被丢弃了。
 
与数据库连接的配置有两种方法,一种是JDBC,一种是DataSource
JDBC的配置
 
示例:
<property ame="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">javass</property>
<property name="connection.password">javass</property>
 
数据源的配置
示例如下
<property name="connection.datasource">java:/javassDs</property>
连接池c3p0的配置
由于Hibernate自己实现的连接池不太好,在项目中,建议使用工业级的连接池,比如:c3p0,Hibernate发行包中带有c3p0,下面就是其基本配置示例:
<property name= "connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name= "connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name= "connection.username">javass</property>
<property name= "connection.password">javass</property>
       
<!-- 使用c3p0连接池配置连接池提供的供应商-->  
<property name="connection.provider_class">  
    org.hibernate.connection.C3P0ConnectionProvider  //是依据hbm3.6版本的
</property>
<property name= "c3p0.min_size">5</property>
<property name= "c3p0.max_size">20</property>
<property name= "c3p0.timeout">180</property>
<property name= "c3p0.max_statements">50</property>
 
 
为了解决数据库中元素命名冲突的问题,引入catalog和schema来解决。
从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。
n比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,各种数据库系统对Catalog和Schema的支持具体可参见下表:
 
     为了让应用在JDBC事务和JTA事务环境中可以移植,建议使用可选的Hibernate Transaction API, 它包装并隐藏了底层系统
通过设置Hibernate配置属性hibernate.transaction.factory_class来指定一个Transaction实例的工厂类
   
有三个标准(内建)的选择
1:委托给数据库(JDBC)事务(默认)
Hibernate4以前:org.hibernate.transaction.JDBCTransactionFactory
Hibernate4里面:org.hibernate.engine.transaction.internal.jdbc.JDBCTransactionFactory
2:JTA事务,如果在上下文环境中存在运行着的事务(如EJB会话Bean的方法), 则委托给容器管理的事务, 否则,将启动一个新的事务,并使用Bean管理的事务.
Hibernate4以前: org.hibernate.transaction.JTATransactionFactory
Hibernate4里面: org.hibernate.engine.transaction.internal.jta.JTATransactionFactory
3:委托给容器管理的JTA事务
Hibernate4以前: org.hibernate.transaction.CMTTransactionFactory
Hibernate4里面:org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
也可以定义属于你自己的事务策略 (如针对CORBA的事务服务)
 
 
1:Hibernate使用SLF4J来做日志记录,可以根据你选择的绑定把日志输出到日志框架(NOP、Simple、log4j version 1.2、JDK 1.4 logging、JCL 或 logback)上。
2:需要在 classpath 里加入 slf4j-api.jar 和你选择的绑定的JAR 文件(使用Log4J 时加入slf4j-log4j12.jar),当然别忘了加入log4j自己的jar包。
 
 
分享到:
评论

相关推荐

    Hibernate教程01_Hibernate的HelloWorld及基本配置

    Hibernate教程01_Hibernate的HelloWorld及基本配置 http://blog.csdn.net/e421083458/article/details/8794127 该源码为Hibernate教程配套源码

    hibernate 教程

    XML配置文件 4. 持久化类(Persistent Classes) 4.1. POJO简单示例 4.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 4.1.2. 实现一个默认的构造方法(constructor) 4.1.3. ...

    java私塾独家首发最新Hibernate4教程

    java私塾独家首发最新Hibernate4教程(基本开发,入门,配置,CRUD)

    深入浅出Hibernate(PDF)第二部分

    从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate...

    Hibernate教程

    2.2.3. Hibernate配置 2.2.4. 用Ant编译 2.2.5. 安装和帮助 2.2.6. 加载并存储对象 2.3. 第二部分 - 关联映射 2.3.1. 映射Person类 2.3.2. 一个单向的Set-based关联 2.3.3. 使关联工作 2.3.4. 值类型的集合...

    hibernate基础教程

    挺基础的hibernate基础教程 里面有从配置到基本应用的例子

    深入浅出Hibernate(PDF)第一部分

    从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate...

    深入浅出hibernate(PDF)第三部分

    从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate...

    MyEclipse Hibernate 快速入门(电子书)

    这个快速入门展示了使用 MyEclipse Enterprise Workbench 开发 Hibernate 的基本功能, 概念和技术. 我们将全程带领你来开发一个非常简单的 Java Hibernate 应用. 对于这个教程没有包含到的问题和概念, 我们推荐你去...

    hibernate-demos:各种Hibernate项目演示的存储库

    来自单个Hibernate实例的多个并发数据库和客户端核心/缓存:实体二级缓存(2LC)和查询缓存核心/扩展:历史/审计数据核心/空间:地理数据osgi :教程演示所有可能的ORM OSGi配置HibernateOGM 远足演示:用于在2014年...

    Spring3 MVC +HibernateJPA Eclipse Demo

    1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...

    深入浅出Hibernate

    &lt;br/&gt;步骤4: 升级到Hibernate 3。 &lt;br/&gt; 环境说明 --------- 程序包中的程序经过测试的运行环境为: 1, Tomcat 5.0.25 2, Hibernate 2.1.7 3, Hibernate 3.0.2 4, ...

    hibernate基础配置

    hibernate基础配置,之前在网上找个实例找了半天,后来自己看了教程,终于解决问题了,基本上是jar包和配置问题,菜鸟上传,仅供参考哈

    利用MyEclipse开发Struts+Hibernate配置

    Hibernate中文手册》作者认为要学Hibernate看这个就足够了,里面几乎包括了所有的细节,不过可能不太适合快速入门。关于struts的资料就很多了,这里推荐一个可以下载一些入门教程的网站。  地址:...

    推荐完整精品J2EE课件 JavaEE程序设计与应用开发教程 13 Hibernate基础编程(共26页).ppt

    推荐完整精品J2EE课件 JavaEE程序设计与应用开发教程 01 JavaEE介绍和环境配置(共30页).ppt 推荐完整精品J2EE课件 JavaEE程序设计与应用开发教程 02 JDBC(共45页).ppt 推荐完整精品J2EE课件 JavaEE程序设计与...

    hibernate

    XML配置文件 4. 持久化类(Persistent Classes) 4.1. POJO简单示例 4.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 4.1.2. 实现一个默认的构造方法(constructor) 4.1.3. ...

    Spring3 MVC Hibernate-JPA Eclipse Demo

    1、本示例只是借花献佛,其实网上SpringMVC+Hibernate-JPA的示例代码一大堆,但是有源代码的demo很少,而且大部分介绍不全面,容易造成学习误区。我也是曾经学习网上示例来完成这个demo。本人是参考...

    MyEclipse 6.0 开发完整中文教程

    教程内容:开发环境的基本配置、JDBC的应用 以及Struts2、 Spring、 Hibernate的介绍、web的开发, 讲得比较详细,是本不错的教程

    Hibernate参考文档

    1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 ...

    javaspring 培训教程 TP1.docx

    它提供了一 些基本组件,如事务管理、 MVC 框架、 JDBC 、ORM 等,同时 也支持其他开源框架,比如 Hibernate 、MyBatis 等。 Java Spring 的优点是可扩展性更高、更加灵活,可以适应各种场景 的需求。 Java Spring ...

Global site tag (gtag.js) - Google Analytics