`
南山忍者
  • 浏览: 85574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate与数据库的链接

 
阅读更多

hibernate开发组推荐c3p0,spring开发组推荐dbcp,但是dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法 reconnect ,告诉连接被重置,这个设置可以解决。hibernate in action推荐c3p0和proxool。

强烈推荐proxool,因为他不但可以监控后台。还可以有效的释放连接。在connection close时,也就是归还connection,
关闭所有的statement,并且判断是否autocommit,如果不行,就rollback,并且设置true,
可以参考proxool的org.logicalcobwebs.proxool.ConnectionResetter类
connection pool把connection reset置回initial state。
dbcp的配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>

 <property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
</bean>

c3p0的配置, 注意是''driverClass' , 'jdbcUrl', 'user' , 'password'

<bean id="dataSource"
  class="com.mchange.v2.c3p0.ComboPooledDataSource"
  destroy-method="close">
  <property name="driverClass">
   <value>oracle.jdbc.driver.OracleDriver</value>
  </property>
  <property name="jdbcUrl">
   <value>jdbc:oracle:thin:@218.202.151.179:58580:ORA9I</value>
  </property>
  <property name="user">
   <value>oa</value>
  </property>
  <property name="password">
   <value>XXXX</value>
  </property>
  <property name="minPoolSize">
   <value>15</value>
  </property>
  <property name="acquireIncrement">
   <value>5</value>
  </property>
  <property name="maxPoolSize">
   <value>25</value>
  </property>

 

<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
        destroy-method="close">
        <property name="driverClass">
            <value>${db.driverClass}</value>
        </property>
        <property name="jdbcUrl">
            <value>${db.url}</value>
        </property>
         <!--
        <property name="user">
            <value>${db.user}</value>
        </property>
        <property name="password">
            <value>${db.pass}</value>
        </property>
        -->
        <property name="properties">
            <props>
                <prop key="c3p0.acquire_increment">5</prop>
                <prop key="c3p0.idle_test_period">100</prop>
                <prop key="c3p0.max_size">100</prop>
                <prop key="c3p0.max_statements">0</prop>
                <prop key="c3p0.min_size">10</prop>
                <prop key="user">${db.user}</prop>
                <prop key="password">${db.pass}</prop>
            </props>
        </property>
    </bean>
xapool的配置
 <bean id="dataSource" class="org.enhydra.jdbc.pool.StandardPoolDataSource" destroy-method="stopPool">
    <constructor-arg index="0">
      <bean class="org.enhydra.jdbc.standard.StandardConnectionPoolDataSource">
        <property name="driverName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://localhost/dbname</value></property>
      </bean>
    </constructor-arg>
    <property name="user"><value>root</value></property>
    <property name="password"><value>mypass</value></property>
    <property name="minSize"><value>1</value></property>
    <property name="maxSize"><value>5</value></property>
    <property name="jdbcTestStmt"><value>select 1</value></property>
  </bean>
c-jdbc的配置
<bean id="dataSource" class="org.objectweb.cjdbc.driver.DataSource">
    <property name="url"><value>jdbc:cjdbc://127.0.0.1:25322/vdb?user=vuser</value></property>
  </bean>

weblogic的连接池解决办法:Test Reserved Connections: 如果选择了这个选项,服务器会在把连接提供给客户端之前
对其进行测试。 Test Created Connections: 如果选择了这个选项,就会在创建一个JDBC
连接之后和在把它添加到JDBC连接池中的可用连接列表之前,对该JDBC连接进行测试。

tomcat的jndi关于dbcp的配置:

<parameter>
         <name>factory</name>
         <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
       </parameter>
       <parameter>
         <name>driverClassName</name>
         <value>com.sybase.jdbc2.jdbc.SybDriver</value>
       </parameter>
       <parameter>
         <name>url</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>username</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>password</name>
         <value>xyz</value>
       </parameter>
       <parameter>
         <name>maxActive</name>
         <value>5</value>
       </parameter>
       <parameter>
         <name>maxIdle</name>
         <value>5</value>
       </parameter>
       <parameter>
         <name>maxWait</name>
         <value>-1</value>
       </parameter>
       <parameter>
         <name>removeAbandoned</name>
         <value>true</value>
       </parameter>
       <parameter>
         <name>validationQuery</name>
         <value>select count(*) from sometable where 1 = 0</value>
       </parameter>
       <parameter>
         <name>testOnBorrow</name>
         <value>true</value>
       </parameter>
=================================================================

c3p0 连接池

    Hibernate 配置文件主要用于配置数据库连接和Hibernate运行时所需要的各种属性(如,连接池,SQL方言,是否现实SQL日志等)。
    Hibernate 同时支持 xml 格式的配置文件各传统的 properties 文件配置形式,这里采用 xml 。
    配置文件名默认为 hibernate.cfg.xml(或 hibernage.properties),Hibernate在初始化期间自动在 classPath中寻找这个文件,并读取其中的配置信息,并加载。
    以下是 hibernate.cfg.xml 文件(在项目 HibernateProject 的src 下放以下内容):
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
  
  <!-- 是否将运行期生成的SQL输出到日志以供调试 -->
  <property name="hibernate.show_sql">
   true
  </property>
  
  <!-- SQL 方言-->
  <property name="hibernate.dialect">
   org.hibernate.dialect.SQLServerDialect
  </property>
  
  <!-- 数据库用户 -->
  <property name="hibernate.connection.username">
   sa
  </property>
  
  <!-- 数据库密码 -->
  <property name="hibernate.connection.password">
   123456
  </property>
  
  <!-- 数据库 JDBC 驱动-->
   <property name="hibernate.connection.driver_class">
   com.microsoft.jdbc.sqlserver.SQLServerDriver
  </property>
  
  <!-- 数据库 URL -->
  <property name="hibernate.connection.url">
   jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hbdb
  </property>
  
  <!-- 事务管理类型 -->
  <!-- Hibernate 3 对包名做了修改 ( net.sf.hibernate  => org.hibernate )-->
  <property name="hibernate.transaction.factory_class">
   org.hibernate.transaction.JDBCTransactionFactory
  </property>
  
  <!-- c3p0 连接池 -->
  <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
  <property name="hibernate.c3p0.max_size">2</property>
  <property name="hibernate.c3p0.min_size">2</property>
  <property name="hibernate.c3p0.timeout">50000</property>
  <property name="hibernate.c3p0.max_statements">100</property>
  <property name="hibernate.c3p0.idle_test_period">3000</property>
  <property name="hibernate.c3p0.acquire_increment">2</property>
  <property name="hibernate.c3p0.validate">false</property>
 
  
  <!-- 映射的配置文件,对应数据库表 KELA_STUDENT 的映射文件,在后面将看到这个文件的配置 -->
  <mapping resource="com/kela/hb/pojo/KelaStudent.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

 

【注】以上内容转自:

http://www.blogjava.net/zhip/archive/2006/09/21/71154.html

 

 

分享到:
评论

相关推荐

    hibernate连接金仓数据库所需jar包集合lib.7z

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过Java对象来操作数据库,极大地简化了数据库操作。金仓数据库,又称为Kingbase,是一款国产的高性能、高可靠性的关系型数据库管理...

    Java web Hibernate如何与数据库链接

    Java web Hibernate 如何与数据库链接 Java web Hibernate 如何与数据库链接是 Java web 开发中一个非常重要的_topic_,本文将详细介绍 Java web Hibernate 如何与数据库链接的步骤和详细代码,帮助开发者快速掌握...

    hibernate数据库连接

    通过访问提供的博文链接(https://unya.iteye.com/blog/89405),我们可以找到更多关于Hibernate数据库连接的实践经验和深入讲解。 【标签】:“源码”和“工具”表明我们将关注于Hibernate的内部实现以及它作为...

    java hibernate不同数据库之间的动态切换

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。然而,在某些情况下,我们可能需要在运行时根据不同的条件或需求动态地切换...

    自己动手模仿Hibernate写数据库框架

    Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库与Java对象之间的交互,使得开发者可以更专注于业务逻辑而不是底层SQL的编写。 【描述】中的"程序代码"提示我们将深入探讨具体的编程实现。博文...

    hibernate同时配置多个数据库连接

    每个`sessionFactory`对应一个`&lt;hibernate-configuration&gt;`标签,里面包含与特定数据库相关的`&lt;property&gt;`元素。 1. **配置多个数据库连接** - **创建多个sessionFactory**:在`hibernate.cfg.xml`中,为每个...

    根据hibernate配置文件生成数据库.zip

    在IT行业中,Hibernate是一个非常流行的Java持久化框架,它简化了与关系型数据库的交互,尤其是在对象关系映射(ORM)方面。本压缩包“根据hibernate配置文件生成数据库.zip”包含了一些关键资源,帮助开发者理解...

    SpringMVC+Spring+HIbernate简单数据库实例.zip

    这个压缩包文件"SpringMVC+Spring+HIbernate简单数据库实例.zip"提供了一个基本的示例,展示了如何整合这三个框架来实现与数据库的交互。以下是关于SSH集成的详细知识点: 1. **Spring框架**:Spring是一个全面的...

    Hibernate数据库操作实例.zip

    标题"Hibernate数据库操作实例.zip"表明这是一个关于使用Hibernate框架进行数据库操作的实际案例。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发人员使用面向对象的方式来处理数据库交互,而无需...

    数据库链接数据库链接数据库链接

    总结,数据库链接是现代信息系统的基础,理解和掌握其原理与实践对于任何IT专业人士来说都至关重要。无论是在开发、运维还是数据分析的角色中,熟练地处理数据库链接都能极大地提升工作效率和系统的可靠性。

    hibernate 链接access数据的jdbc驱动包

    在这个场景中,"hibernate 链接access数据的jdbc驱动包"就是用来建立Hibernate与Access数据库连接的关键组件。 首先,我们需要理解JDBC(Java Database Connectivity),这是Java标准的一部分,提供了一套用于与...

    用Hibernate框架+jtds链接数据库驱动

    在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了与数据库的交互,使得开发者可以使用面向对象的方式来操作数据库。本文将详细介绍如何使用Hibernate框架结合jTDS驱动来连接数据库。 ...

    JSP数据库链接、增删改实现

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了Java编程...以上就是JSP数据库链接及增删改查的基本知识点,掌握了这些,你就可以在JSP项目中有效地操作数据库,构建功能丰富的Web应用。

    Hibernate连接SQLite配置说明和方言代码

    2.2、打开此文件,将“&lt;property name="hibernate.connection.url"&gt;jdbc:sqlite:D:/EGSDatabase.egsdata”一行中的数据库文件("D:/EGSDatabase.egsdata")修改为合适的数据库文件。 注:附件包含了...

    一个简单的hibernate_4 链接Oracle例子

    这个例子的核心目标是演示如何配置Hibernate 4以与Oracle数据库进行交互,包括设置配置文件、创建实体类、编写映射文件以及执行基本的CRUD(创建、读取、更新、删除)操作。通过这个实例,开发者可以理解如何将Java...

    从数据库 到 hibernate配置文件,JAVABEAN 和HTML表单的工具

    压缩工具包 博文链接:https://otom31.iteye.com/blog/229059

    hibernate和MySQL的jar

    标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...

    java对各种数据库的链接及用法个人笔记

    这通常涉及到使用Java Database Connectivity (JDBC) API,这是一个Java标准,允许Java应用程序与各种关系型数据库进行交互。下面将详细介绍Java如何连接不同类型的数据库以及进行基本操作。 1. **JDBC驱动和数据库...

Global site tag (gtag.js) - Google Analytics