数据持久化Hibernate的标准数据库连接池配置(转)
2008-05-30 13:59
597 查看
转自:http://hi.baidu.com/lanruijin/blog/item/b57938d1267e19d2562c8453.html
以TOMCAT+MySql为例,Hibernate有两种连接数据库的方式:
1、Hibernate自行管理的数据库连接池
2、Hibernate使用当前容器配置的连接池
在网上看到很多Hibernate配置教程,可说实在的那些教程杂
乱无章,最多算是手记,对于需要了解这方面的人来说阅读
这些垃圾更是弊大于利。原谅我用垃圾这个词,但难道不是吗,
自己只要调式通了,随便几句话堆砌成一篇“技术文章”,不
管别人看不看得懂、是否条理明确和规范,这就是垃圾。
所以我写这篇文章自然就不是垃圾了,废话不多说,Hibernate
+TOMCAT配置数据库连接池标准过程。
准备工作:
1、www.Hibernate.org下载最新的Hibernate,建议3.0
版。
2、安装了MYSQL,并且将MYSQL驱动复制到TOMCAT中的common/lib下。
3、在TOMCAT中建立一个新的WEB应用(这还不会的话就不要学
了)。
4、将Hibernate下的类库--LIB文件夹下的所有JAR复制到
WEB应用WEB-INF/lib下。
5、在WEB应用WEB-INF/classes目录下建立hibernate.cfg.xml文
件,内容如下:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
实际上这一步建立的是个尚未有任何配置的XML文件。
一、Hibernate自行管理的数据库连接池
顾名思义,Hibernate框架包含了自己的管理数据库连接的方法,
这一切只需要配置hibernate.cfg.xml文件即可。
完整的hibernate.cfg.xml:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<!--Hibernate self-manager connection pool-->
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/nihongo?useUnicode=true</property>
<property name="connection.username">root</property>
<property name="connection.password">kevin</property>
<mapping resource="cat/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以上各属性值请依照自己的情况修改即可。
2、Hibernate使用当前容器配置的连接池
容器(如TOMCAT)建立连接池,并配置JNDI,Hibernate通过调用JNDI来
使用容器的连接池。
这中方式稍微有点复杂,需要配置三个XML文件:
1、%TOMCAT_HOME%/conf/server.xml
在server.xml中,</host>这之前加入如下WEB应用上下文配置:
<Context path="/quickstart" docBase="quickstart" debug="0" >
<Resource name="jdbc/MySql5" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/nihongo?useUnicode=true"
username="root" password="kevin" maxActive="100" maxIdle="10"
maxWait="-1"/></Context>
2、完整的hibernate.cfg.xml:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<!--Hibernate use JNDI to access container's connection pool-->
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/MySql5</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="cat/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3、WEB应用的web.xml文件:
在web.xml的</web-app>之前加入如下配置:
<!--Hibernate use container's connection pool-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySql5</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
以上,2种配置Hibernate连接数据库的方式,具体差异本人尚不完全
以TOMCAT+MySql为例,Hibernate有两种连接数据库的方式:
1、Hibernate自行管理的数据库连接池
2、Hibernate使用当前容器配置的连接池
在网上看到很多Hibernate配置教程,可说实在的那些教程杂
乱无章,最多算是手记,对于需要了解这方面的人来说阅读
这些垃圾更是弊大于利。原谅我用垃圾这个词,但难道不是吗,
自己只要调式通了,随便几句话堆砌成一篇“技术文章”,不
管别人看不看得懂、是否条理明确和规范,这就是垃圾。
所以我写这篇文章自然就不是垃圾了,废话不多说,Hibernate
+TOMCAT配置数据库连接池标准过程。
准备工作:
1、www.Hibernate.org下载最新的Hibernate,建议3.0
版。
2、安装了MYSQL,并且将MYSQL驱动复制到TOMCAT中的common/lib下。
3、在TOMCAT中建立一个新的WEB应用(这还不会的话就不要学
了)。
4、将Hibernate下的类库--LIB文件夹下的所有JAR复制到
WEB应用WEB-INF/lib下。
5、在WEB应用WEB-INF/classes目录下建立hibernate.cfg.xml文
件,内容如下:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
实际上这一步建立的是个尚未有任何配置的XML文件。
一、Hibernate自行管理的数据库连接池
顾名思义,Hibernate框架包含了自己的管理数据库连接的方法,
这一切只需要配置hibernate.cfg.xml文件即可。
完整的hibernate.cfg.xml:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<!--Hibernate self-manager connection pool-->
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/nihongo?useUnicode=true</property>
<property name="connection.username">root</property>
<property name="connection.password">kevin</property>
<mapping resource="cat/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
以上各属性值请依照自己的情况修改即可。
2、Hibernate使用当前容器配置的连接池
容器(如TOMCAT)建立连接池,并配置JNDI,Hibernate通过调用JNDI来
使用容器的连接池。
这中方式稍微有点复杂,需要配置三个XML文件:
1、%TOMCAT_HOME%/conf/server.xml
在server.xml中,</host>这之前加入如下WEB应用上下文配置:
<Context path="/quickstart" docBase="quickstart" debug="0" >
<Resource name="jdbc/MySql5" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/nihongo?useUnicode=true"
username="root" password="kevin" maxActive="100" maxIdle="10"
maxWait="-1"/></Context>
2、完整的hibernate.cfg.xml:
<?xml version='1.0' encoding='GBK'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<!--Hibernate use JNDI to access container's connection pool-->
<hibernate-configuration>
<session-factory>
<property name="connection.datasource">java:comp/env/jdbc/MySql5</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="cat/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3、WEB应用的web.xml文件:
在web.xml的</web-app>之前加入如下配置:
<!--Hibernate use container's connection pool-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySql5</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
以上,2种配置Hibernate连接数据库的方式,具体差异本人尚不完全
相关文章推荐
- Spring+Hibernate用 c3p0配置数据库连接池
- hibernate配置mysql数据库的 一对多 多对多 orm元数据
- Tomcat5.x和Hibernate数据库连接池配置方法
- SSH框架中Hibernate实现对数据的持久化
- Hibernate jap 配置 Persistence 注解实现创建表添加修改删除 时态数据
- hibernate持久化数据实例解析
- Hibernate配置数据源,数据库连接池
- Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表
- hibernate配置数据库连接池的三种方法
- hibernate-不能保存数据到数据库(数据不能持久化)
- Hibernate配置文件中数据类型date与timestamp区别
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
- 使用hibernate扩展工具Hbm2JavaTask根据配置文件生成持久化对象类(2.1.2)
- Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表
- 重复数据删除已成存储标准配置
- Hibernate中持久化注解的java文件在applicationContext.xml中的配置
- Spring整合HIbernate时,三种数据库连接池的配置和比較
- JPA+Hibernate持久化数据:detached entity passed to persi
- SSH框架中Hibernate实现对数据的持久化
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)