hibernate数据库访问(翻译文档)

来源:互联网 发布:php支持mysql扩展 编辑:程序博客网 时间:2024/05/18 01:05

1、连接

Hiebernate代表你的应用可以连接数据库。它可以通过一些列的 机制访问数据库包扩1、内置的数据库连接池;2、java.sql.DataSource3、两种第三方数据库连接池一、C3P0二、proxool

内置的数据库连接池不用于具体应用的环境。

 

1.1初始化

你可以用一个xml部署文件来初始化数据库链接。

一、hibernate属性文件配置例子(C3P0)

hibernate.connection.driver_class=org.postgresql.Driver

hibernate.connection.url=jdbc:postgresql://localhostmydatabase

hibernate.connection.username=username

hibernate.connection.password=password

hibernate.c3p0.min_size=5

hibernate.c3p0.max_size=20

hibernate.c3p0.timeout=1800

hibernate.c3p0.max_statement=50

hibernate.dialect=org.hibernate.idalect=PostgreSQLDialect

二、与HSQL数据库连接的hibernate.cfg.xml文件配置例子

<hibernate-configuration>

       <sessionFactory>

     <!—数据库链接属性设置-à

   <property name=”connection.driver_class”>org.hibernate.jdbcDriver</property>

  <property name=”connection.url”>jdbc:hsqldb:hsql://localhost</property>

  <property name=”connection.username”>sa</property>

  <property name=”connection.password”></property>

<!-JDBC数据库连接池(用内置的数据库连接池)-à

<property name=”connection.pool_size”>1</property>

        <!-SQL方言-à

                   <propertyname=”dialect”>org.hibernate.dialect.HSQLDialect</property>

                  <!-启动hibernate会话自动的上下文管理-à

                   <propertyname=”current_session_context_class”>thread</property>

                   <!-禁用二级缓存-à

                   <propertyname=”cache.provider_class”>org.hibernate.internal.NoCacheProvider</property>

 <!—显示输出sql语句à

<property name=”show+sql”>true</property>

<!-在应用启动时,删除重新创建数据库应用模式-à

<property name=”hbm2ddl.auto”>update</property>

<mapping resource=”org/hibernate/tutorial/domain/Event.hbm.xml”/>

</sessionFactory>

</hibernate-configuration>

编程配置:

对象hibernate.cfg.Configuration的一个实体代表了整个应用程序java类型到数据库的映射,org.hebernate.cfg.Configuration建立了一个不可改变的数据库org.hebernate.SessionFactory,汇集了来自不同xml文件的映射,映射文件你可以指定,也可以市hibernate找到;

1、  直接指定映射文件

你可以通过一个指定的xml文件实例化一个org.hibernate.cfg.Configuration 实例,如果他在classpath中,用addResource()

Configuration cfg=new Configuration();.addResource(“Item.hbm.xml”)

2、  让hibernate找到你的映射文件

;addClass()方法让hibernate在路径中寻找同名的映射文件(有点不准确原文为The addClass() method directs hibernate to search the CLASSPATH FORmapping files,eliminating hard-code file names);在下面的例子中hibernate将去寻找org/hibernate/auction/Item.hbm.xml

Configuration cfg=new Configuration().addClass(org.hibernate.auction.Item.class)

3、  指定初始化属性

Configuration cfg=new Configuration().setProperty(“hibernate.dialect”,”org.hibernate.dialect.MySQLInnoDBDialect”);

其它初始化的方法

传递一个java.utl.properties 的实例

设置系统的属性

;

 

1.2获得JDBC连接

在你初始化最重要的jabc数据库链接属性后,你可以用org.hibernate.SessionFactory opensession的方法打开sessions

2、连接池

Hibernate内部的连接池是非常简单的,它是用来测试用的,用第三方的包可以保持有更好的表现和稳定性;要用第三方的连接池的属性取代hibernate内置的选择,禁用hibernate自己的连接池属性

 

2.1 c3p0连接池

C3p0是一个开源的数据库连接池,随着hibernate一起分发的,加入你设置了hibernate,c3p0,*的属性,

几个重要的数据库连接池属性

Hibernae.c3p0.min_size

Hibernate.c3p0.max_size

Hibernate.c3p0.timeout

Hibernate.c3p0.max_statements

 

2.2proxool连接池

Proxoo是另一个数据库连接池开源软件,与c3p0不同的是,proxool需要其它的配置参数

Property

Description

Hibernate.proxool.xml

初始化proxool需要

Hibernate.proxool.properties

 

Hibernate.proxool.existion_pool

 

Hibernate.proxool,pool_alias

 

 

原创粉丝点击