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 |
|