`

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基本配置演示

    这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利搭建并运行一个简单的Hibernate项目。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它的主要功能是将Java对象与数据库表进行映射,从而避免了...

    私塾在线Hibernate4教程(上下部共241页)

    在Hibernate4的配置方面,教程会讲解XML配置文件和注解配置的不同方式,以及如何在实际项目中进行配置,包括数据库连接池的设置、实体类的映射等。此外,还会涉及HQL(Hibernate查询语言)和 Criteria API,这两种...

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

    #### 二、Hibernate4的基础配置与开发 **2.1 基础配置** - **cfg.xml**:这是Hibernate4的主配置文件,包含了数据库连接信息、日志级别设置等。 - **Mapping配置**:定义实体类与数据库表之间的映射关系。 - **...

    JAVA 使用hibernate配置实例

    本教程将详细讲解如何在Java项目中配置和使用Hibernate,包括在普通Java工程和Maven工程中的配置实例。 首先,我们需要了解Hibernate的核心概念。Hibernate是一个开源的ORM框架,它可以将Java类与数据库表进行映射...

    Hibernate5教程文档大纲

    本教程覆盖了从基本概念到实战案例的多个层次,适合初学者和有一定经验的开发者学习,进一步理解ORM和Hibernate框架的精髓。通过学习,读者应能独立完成基于Hibernate的数据库操作,并能灵活应对各种复杂的关联关系...

    Hibernate高级教程

    《Hibernate高级教程》是一份深度探索Java对象关系映射(ORM)框架Hibernate的教程,它包含14个精心设计的章节,旨在帮助开发者深入理解并掌握Hibernate的核心特性和高级用法。以下是对这些章节可能涉及的主要知识点...

    Hibernate教程

    【Hibernate教程】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。本教程将深入探讨Hibernate的核心概念、配置、实体映射以及如何通过它来简化...

    hibernate教程

    ### hibernate教程知识点详解 #### 一、概述 本文档主要介绍了使用Hibernate进行注解式开发的方法,并且针对Hibernate的基本使用及其配置进行了详尽的解释。Hibernate作为一个流行的Java持久层框架,提供了对象...

    Hibernate基础教程

    本教程的"基础Hibernate 教程.txt"文件,可能包含了关于这些知识点的详细讲解,包括代码示例和实践步骤,帮助初学者快速掌握Hibernate的基本用法。通过学习和实践,开发者可以更高效地进行Java数据库应用的开发。

    hibernate基本配置及使用方法

    本教程将详细解释Hibernate的基本配置和使用步骤,帮助初学者快速掌握这一强大的工具。 ### 一、对象关系映射(O/R Mapping) 1. **O/R Mapping是什么?** 对象关系映射是将Java应用程序中的对象模型与关系数据库...

    最经典的hibernate教程_从入门到精通(全四篇)

    本教程的【第一篇】将介绍Hibernate的基础知识和基本操作,【第二篇】会深入到关联映射和查询,【第三篇】涵盖性能优化和扩展性,而【第四篇】则聚焦于实际项目中的应用和问题解决。通过这四篇内容的学习,你将能够...

    hibernate3基础教程中文版及源码

    8. **缓存机制**:Hibernate提供了第一级缓存和第二级缓存,学习如何配置和使用这些缓存以提高性能。 9. **一对多、多对一、一对一关联映射**:掌握不同类型的关联映射配置,如List、Set、Map等集合类型的映射,...

    使用Maven配置Hibernate5

    这就是一个基本的使用Maven配置Hibernate5的流程。通过这种方式,你可以轻松地在Java应用中管理和操作数据库。在实际开发中,你可能还需要考虑缓存配置、事务管理、日志等更多细节,但上述步骤已经为你建立了一个...

    spring+hibernate教程(二合一)

    通过本教程的学习,读者不仅可以掌握Spring和Hibernate的基本用法,还能了解它们如何协同工作,提升Java企业级应用开发能力。在实践中,不断探索和实践这些知识,将会使你更熟练地驾驭这两个强大的框架。

    hibernate教程打包下载,史上最全的HIBERNATE

    【hibernate教程打包下载,史上最全的HIBERNATE】这个资源集合涵盖了广泛的Hibernate相关知识,对于初学者和有经验的Java开发者来说都是一份宝贵的资料。Hibernate是一款优秀的对象关系映射(ORM)框架,它极大地...

    CTSP Hibernate 培训教程

    第二部分:Hibernate配置与实体映射 这一部分深入讲解了Hibernate的配置文件(hibernate.cfg.xml)和实体类的映射文件(.hbm.xml)。读者将学习到如何配置数据库连接、事务管理策略,以及如何在映射文件中定义字段、...

    java javaee struts2 spring hibernate免费学习视频教程

    - **Hibernate入门**:介绍Hibernate框架的基本概念,以及如何通过Hibernate进行对象关系映射(ORM)。 - **Hibernate高级特性**:深入学习Hibernate的缓存机制、查询语言(HQL和Criteria API)、性能优化技巧等。 -...

    Hibernate入门教程.pdf

    ### Hibernate入门教程知识点详解 #### 一、Hibernate框架简介 **Hibernate** 是一款开放源代码的**对象关系映射(Object-Relational Mapping,简称ORM)**框架,它为Java应用提供了一种高效的机制,用于处理Java...

Global site tag (gtag.js) - Google Analytics