`
joy_cz
  • 浏览: 136503 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate学习(2)----配置Hibernate

阅读更多

2.1简单的配置

配置Hibernate的最简单方法是仅提供最基础的数据库连接配置,需要在hibernate.cfg.xml文件里设定所使用的数据库驱动,URL,Hibernate方言,数据库的访问用户名和密码,以及在配置时需要加载的*.hbm.xml映射文件,例如以下的hibernate.cfg.xml

<?xml version ='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0 .dtd">

<hibernate-configuration>

<session-factory>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>

<property name="connection.url">jdbc:mysql://localhost/hibernate</property>

<property name="connection.username">root</property>

<property name="connection.password">123456</property>

<mapping resource="com/joy_cz/computer/computer.hbm.xml"/>

</session-factory></hibernate-configuration> 

        可以利用Hibernate提供的org.hibernate.cfg.Configuration类来将hibernate.cfg.xml中的内容导入,形成Configuration实例,然后由Configuration实例创建SessionFactory对象实例。对应过程代码如下:

PropertyConfigurator.configure("log4j.Properties");

Configuration cfg = new Configuration();

cfg.configure();//或者cfg.configure(new File("src/hibernate.cfg.xml"));

SessionFactory sf=cfg.buildSessionFactory();

2.2连接池的配置

在hibernate中,可以使用多种连接池实现工具,例如:C3P0和Proxool。下面的hibernate.cfg.xml配置文件使用了C3P0数据库连接池:

<?xml version ='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0 .dtd">

<hibernate-configuration>

<session-factory>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>

<property name="connection.url">jdbc:mysql://localhost/hibernate</property>

<property name="connection.username">root</property>

<property name="connection.password">123456</property>

<property name="hibernate.connection.pool_size">10</property>

<property name="hibernate.connection.provider_class">

org.hibernate.connection.C3P0ConnectionProvider</property>

<property name="hibernate.c3p0.min_size">8</property>

<property name="hibernate.c3p0.max_size">20</property>

<property name="hibernate.c3p0.timeout">2500</property>

<property name="hibernate.c3p0.max_statements">50</property>

<mapping resource="com/joy_cz/computer/computer.hbm.xml"/>

</session-factory></hibernate-configuration>

使用这个配置文件运行Hibernate程序后,Hibernate会启用C3P0连接池。

2.3JNDI和数据源的配置

如果Hibernate被嵌入到J2EE应用服务器中,或者与其他程序共享一个数据源,那么可以通过JNDI来传递数据源对象,此时,在Hibernate的配置文件中,能够通过datasource属性设定数据源的JNDI名称来引用数据源,但是对应名称的数据源一定要在Hibernate引用它之前被其他程序或J2EE应用服务器绑定到JNDI。

<?xml version ='1.0' encoding='utf-8'?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0 .dtd">

<hibernate-configuration>

<session-factory>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="hibernate.jndi.class">org.apache.naming.java.javaURLContextFactory</property>

<property name="hibernate.connection.datasource">Hibernate</property>

<mapping resource="com/joy_cz/computer/computer.hbm.xml"/>

</session-factory></hibernate-configuration>

在这个配置中,使用了APACHE的JNDI服务,对用的JNDI上下文工厂类是:org.apache.naming.java.javaURLContextFactory,包含这个类的naming-factory.jar文件和相关的naming-resources.jar文件可以从TOMCAT的发行包中得到,使用上面的配置文件需要导入这两个JAR文件。使用方法如下:

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import org.apache.log4j.PropertyConfigurator;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

public class ComputerTest{

public static void main(String[] args){

//创建MYsql数据源

MysqlDataSource ds=new MysqlDataSource();

ds.setURL("jdbc:mysql://localhost:3306/hibernate");

ds.setUser("root");

ds.setPassword("123456");

//设置JNDI参数

Hashtable table=new Hashtable();

table.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.naming.java.javaURLContextFactory");

try{

InitialContext ctx = new InitialContext(table);

ctx.bind("Hibernate",ds);

}catch(NamingException e1){e1.printStackTrace();}

2.4事务服务

在Hibernate中,默认的事务服务是基于JDBC的数据库事务服务。当忽略事务服务的配置时,默认的事务工厂属性将被配置为:

org.hibernate.transaction.JDBCTransactionFactory

如果在J2EE应用服务器中使用Hibernate,可以将事务工厂类配置为:

org.hibernate.transaction.JTATransactionFactory

同时指定hibernate.transaction.manager_lookup_class属性到特定的查找类,例如,  在JBOSS内使用hibernate时可以将查找类指定为:

org.hibernate.transaction.JBossTransactionManagerLookup

分享到:
评论

相关推荐

    hibernate-commons-annotations-5.0.1.Final.jar

    3. `org.hibernate.cfg`:这里的类主要用于配置和初始化Hibernate环境,如`AnnotationConfiguration`类就是配置Hibernate的入口,它会读取注解并生成相应的映射信息。 4. `org.hibernate.boot.model`和`org....

    hibernate-release-5.2.10

    2. **库文件**:包含jar包,如hibernate-core.jar、hibernate-entitymanager.jar等,这些是我们在项目中引入Hibernate时需要用到的依赖库。 3. **文档**:通常包括用户指南、API文档、开发者文档等,这些文档提供了...

    hibernate-release-4.1.4

    2. **JAR文件**:包括Hibernate的主库和其他依赖库,如hibernate-core.jar、hibernate-entitymanager.jar等。 3. **文档**:如用户指南、API文档,帮助开发者快速上手和解决问题。 4. **示例**:包含了一些演示如何...

    hibernate-jpa-2.1-api-1.0.0.Final.jar

    《深入理解Hibernate-JPA 2.1 API:源码解析与应用实践》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而Hibernate对Java Persistence API (JPA) 的支持,使得开发者...

    hibernate-release-5.0.7.Final.zip

    而"hibernate-release-5.0.7.Final"目录则可能包含源码、文档、示例项目等,是深入学习和研究Hibernate的好材料。 总之,Hibernate 5.0.7.Final为Java开发带来了极大的便利,通过传智播客黑马程序员2016版的框架,...

    最新 hibernate-release-4.2.13.Final.tgz

    "hibernate-release-4.2.13.Final.tgz"是一个全面的Hibernate学习资源,不仅提供了运行环境所需的jar包,还包含了丰富的实践示例和详尽的文档。无论你是初学者还是经验丰富的开发者,都可以从中受益,进一步提升在...

    hibernate源码release-4.1.4.Final版

    通过深入学习Hibernate 4.1.4.Final的源码,我们可以更好地理解其设计思想,提升我们的编程技巧,同时也能为日常开发中遇到的问题提供解决方案。这是一份宝贵的资源,无论是对于初学者还是经验丰富的开发者,都值得...

    hibernate-distribution-3.6.0

    这个“hibernate-distribution-3.6.0.Beta3”压缩包包含了Hibernate框架的所有组件和必要的文档,包括API文档、示例代码和配置文件,为开发者提供了完整的开发环境。尽管随着时间的推移,新的版本不断推出,但...

    hibernate-orm-master.zip

    "hibernate-orm-master.zip"文件包含了Hibernate ORM的源码和其他相关资源,对于学习和研究Hibernate ORM的工作原理以及如何在实际项目中使用它,是非常宝贵的资料。 在Java应用程序中,数据存储通常依赖于关系型...

    hibernate-annotation-helloword

    在**hibernate-annotation-helloworld**中,"annotation"表示使用的是Hibernate的注解驱动配置,而非XML配置。注解使得代码更简洁,更易于阅读和维护。在Java类中,我们可以通过如@Entity、@Table、@Id等注解,直接...

    hibernate-orm-3.3源码

    本文将针对《hibernate-orm-3.3源码》进行深度解析,帮助读者理解其核心设计理念与实现机制。 一、Hibernate概述 Hibernate 是一款开源的 Java 库,它简化了数据库操作,通过将 Java 对象与数据库表之间的映射关系...

    hibernate-memcached-1.1.0-sources.zip

    在`hibernate-memcached-1.1.0-sources.zip`中,我们可以看到`META-INF`目录下包含了一些配置文件,例如`pom.xml`,这是Maven项目管理文件,用于定义项目依赖和构建规则。在`com`目录下,源码主要分布在`...

    hibernate-distribution-3.5.6-Final.rar

    在实际开发中,我们需要结合"hibernate-distribution-3.5.6-Final"中的配置文件(如hibernate.cfg.xml)来设置数据库连接信息,并在实体类中定义与数据库表对应的字段。通过SessionFactory的实例,我们可以创建...

    hibernate-distribution-3.6.0.Final-dist

    2. **配置Hibernate**:创建`hibernate.cfg.xml`配置文件,指定数据库连接参数、方言、缓存等。 3. **定义实体**:使用Java类表示数据库表,并用注解或XML描述映射关系。 4. **创建SessionFactory**:基于配置文件...

    hibernate-distribution-3.6.6.Final.tar.gz

    总之,`hibernate-distribution-3.6.6.Final.tar.gz`压缩包是Hibernate 3.6.6.Final版本的完整包,包含了所有必要的库文件、文档、示例和配置,是学习和使用Hibernate的重要资源。掌握Hibernate的使用,可以提升Java...

    hibernate-distribution-3.6.2 API及jar包

    在实际应用中,开发者通常会结合`hibernate3.jar`和`hibernate-testing.jar`来搭建开发环境,然后根据`hibernate-reference.pdf`文档的指导,配置Hibernate的属性文件(如hibernate.cfg.xml),定义实体类和映射文件...

    hibernate-annotations-3.4.0.GA+hibernate-distribution-3.3.2.GA-dist

    而Hibernate Annotations则是Hibernate框架的重要组成部分,它使得我们可以在实体类上直接使用注解进行对象关系映射,避免了XML配置文件的繁琐。本文将深入探讨Hibernate 3.3.2和Hibernate Annotations 3.4.0的核心...

    hibernate-validator-4.1.0.Final.rar

    `hibernate-validator-4.1.0.Final-sources.jar`包含了源代码,开发者可以查看源码,深入理解其内部实现机制,对于调试和学习都非常有帮助。 7. **应用实践**: Hibernate Validator常用于Web应用中,配合Spring ...

    hibernate-jpa-2.0-api-1.0.1.Final-sources

    这个源码包"hibernate-jpa-2.0-api-1.0.1.Final-sources"包含了完整的源代码,可以帮助我们深入了解其内部机制,从而更好地应用在实际项目中。 1. **JPA简介**:Java Persistence API(JPA)是Java平台上的一个标准...

Global site tag (gtag.js) - Google Analytics