`
joy_cz
  • 浏览: 132470 次
  • 性别: 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

分享到:
评论

相关推荐

    简单实用struts+spring+hibernate配置实例--.rar

    简单实用struts+spring+hibernate配置实例--.rar 配置简单清晰 最适合初学着学习

    Spring2.5和Hibernate3集成--学习spring aop ioc

    Spring2.5和Hibernate3集成 采用声明式事务 1.声明式事务的配置 * 配置sessionFactory * 配置事务管理器 * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承...

    Hibernate学习资料(java)

    Hibernate一对一数据关联 Hibernate下的多对多关系 Hibernate关系映射 Hibernate继承关系映射 Hibernate映射类型-主键生成器-核心API Hibernate3 插件Eclipse配置

    hibernate学习资料

    Hibernate框架开发中环境配置,hibernate-configuration-3.0的核心配置文件

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    Hibernate学习笔记和资料

    hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...

    01.拓薪教育-hibernate4.3介绍-序

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    马士兵hibernate学习笔记(原版)

    2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping 3 常见的0/R框架(了解) 4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 ...

    Hibernate程序的配置文件

    Hibernate学习的必备,包含了Hibernate的配置文件,MySQL的连接jar文件

    hibernate笔记

    2 下载hibernate-annotations-3[1].4.0.GA 5 3 注意阅读hibernate compatibility matrix(hibernate 网站download) 5 4 下载slf4jl.5.8 6 Hibernate HelloWorld 6 1 建立新java 项目,名为hibernate_0100_HelloWorld 6...

    hibernate-prj2

    2、学习并掌握 Hibernate 框架的常用 API,掌握利用 Hibernate 基本 API 载入配 置文件、建立数据库连接的基本步骤; 3、理解 Hibernate 基本 API 中 Session 的主要作用,掌握利用 Session 进行数据 库操作的基本...

    spring-hibernate注解配置源码

    struts2、spring、hibernate整合,其中spring、hibernate使用全注解配置,一个简单的学习实例源码,可直接导入项目运行实例。

    一套不错的hibernate学习教程

    一套不错的hibernate教程,发现这里没有. 我是从百度上文库里搞来的,花了我30多分. ...Hibernate 配置文件 持久化类 创建对象-关系映射文件 ID Sessin 接口 Hibernate对象的生命周期 ..............

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    深入学习Hibernate

    深入学习Hibernate学习文档由浅入深的详细介绍了Hibernate的原理和配置方法。文档通俗易懂。

    Hibernate3.1_学习源码

    01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有session的关闭后重建问题。 02 02Hibernate_UseMyEclipse: 利用...

    struts2+hibernate学习示例

    struts2+Hibernate 示例 目的:构建struts2开发框架 使用 Hibernate作为持久层操作 适合:有一定struts2基础 实现:通过对用户信息的基本操作来给大家做个示范 1、struts2的搭建 2、web.xml文件的简单配置 3、...

    Hibernate3 学习笔记.ppt

    Hibernate3 学习笔记.ppt 一、O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、Hibernate Annotations 五、持久化对象的状态和生命周期 六、Hibernate查询 七、Hibernate最佳实践 ...

    Myeclipse开发struts+hibernate+spring新手入门---环境配置

    我上传的所有资源都是免费的,欢迎愿意学习的同学下载

    Hibernate5快速学习步骤

    本章学习目标  Hibernate 初认识  Hibernate 的Hello... hibernate.cfg.xml 配置详解  *.hbm.xml 对象映射文件详解  Hibernate 核心接口详解  抽取HibernateUtil 工具类  使用Session 接口进行增删改查

Global site tag (gtag.js) - Google Analytics