`

Spring 数据库连接配置

 
阅读更多

一 ORACLE
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)(SERVER=DEDICATED)))" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
二 DB2
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.ibm.db2.jdbc.app.DB2Driver" />
<property name="url" value="jdbc:db2:thin:@localhost:5000/testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
三 SQL Server
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName = testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>
三 MySQL
   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost/ testDB" />
<property name="username" value="rootl" />
<property name="password" value="1234" />
</bean>

 

org.apache.commons.dbcp.BasicDataSource 需要commons-pool.jar,commons-dbcp-1.2.2.jar,commons-collections-3.2.jar三个JAR包

---------------------------------------------------------------------------------

Spring配置文件中数据库配置

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
   <bean id="placeholderConfig"
       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="location">
           <value>classpath:init.properties</value>
       </property>
   </bean>
    <!-- bean id="dataSource"
       class="org.springframework.jndi.JndiObjectFactoryBean">
       <property name="jndiName">
           <value>${datasource.jndiName}</value>
       </property>
    </bean-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" dependency-check="none">
        <property name="driverClass">
            <value>${datasource.driverClassName}</value>
        </property>
        <property name="jdbcUrl">
           <value>${datasource.url}</value>
        </property>
        <property name="user">
           <value>${datasource.username}</value>
        </property>
        <property name="password">
           <value>${datasource.password}</value>
        </property>
        <property name="acquireIncrement">
           <value>${c3p0.acquireIncrement}</value>
        </property>
        <property name="initialPoolSize">
           <value>${c3p0.initialPoolSize}</value>
        </property>
        <property name="minPoolSize">
           <value>${c3p0.minPoolSize}</value>
        </property>
        <property name="maxPoolSize">
           <value>${c3p0.maxPoolSize}</value>
        </property>
        <property name="maxIdleTime">
           <value>${c3p0.maxIdleTime}</value>
        </property>
        <property name="idleConnectionTestPeriod">
           <value>${c3p0.idleConnectionTestPeriod}</value>
        </property>
        <property name="maxStatements">
           <value>${c3p0.maxStatements}</value>
        </property>
        <property name="numHelperThreads">
           <value>${c3p0.numHelperThreads}</value>
        </property>
</bean>
   <bean id="Hibernate3SessionFactory"
       class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
       <property name="dataSource">
           <ref local="dataSource" />
       </property>
       <property name="mappingResources">
           <list>
               <value>com/hwtx/hibernate/hbm/Login.hbm.xml</value>
           </list>
       </property>
       <property name="hibernateProperties">
           <props>
               <prop key="hibernate.dialect">
                   ${hibernate.dialect}
               </prop>
               <prop key="hibernate.show_sql">
                   ${hibernate.show_sql}
               </prop>
               <prop key="hibernate.jdbc.fetch_size">
                   ${hibernate.jdbc.fetch_size}
               </prop>
               <prop key="hibernate.jdbc.batch_size">
                   ${hibernate.jdbc.batch_size}
               </prop>
                <!-- prop key="hibernate.query.factory_class">
                    ${hibernate.query.factory_class}
               </prop-->
           </props>
       </property>
   </bean>
   <bean id="transactionManager"
   class="org.springframework.orm.hibernate3.HibernateTransactionManager">
       <property name="sessionFactory">
       <ref local="Hibernate3SessionFactory" />
       </property>
   </bean>
<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
<property name="dataSource">
    <ref bean="dataSource" />
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
    <ref bean="Hibernate3SessionFactory" />
</property>
<property name="jdbcExceptionTranslator">
    <ref bean="jdbcExceptionTranslator" />
</property>
</bean>
<bean id="userDAOProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
   <property name="transactionManager">
       <ref bean="transactionManager" />
   </property>
   <property name="transactionAttributes">
       <props>
                 <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                 <prop key="find*">PROPAGATION_REQUIRED</prop>
                        <prop key="get*">PROPAGATION_REQUIRED</prop>
                        <prop key="remove*">PROPAGATION_REQUIRED</prop>
                        <prop key="del*">PROPAGATION_REQUIRED</prop>
                        <prop key="*">PROPAGATION_REQUIRED</prop>
       </props>
   </property>
</bean>
<bean id="loginDao" class="com.hwtx.login.LoginDaoImp">
       <property name="sessionFactory">
           <ref local="Hibernate3SessionFactory" />
       </property>
</bean>
<bean id="userDao" class="com.hwtx.user.UserDaoImp">
       <property name="sessionFactory">
           <ref local="Hibernate3SessionFactory" />
       </property>
</bean>
<bean name="/userAction" class="com.hwtx.struts.action.UserAction" >
   <property name="userDao">
       <ref bean="userDao" />
   </property>
</bean>
<bean name="/loginAction" class="com.hwtx.struts.action.LoginAction" >
   <property name="loginDao">
       <ref bean="loginDao" />
   </property>
</bean>
</beans>

init.properties文件

datasource.type=mysql
datasource.driverClassName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/login?useUnicode=true&characterEncoding=UTF-8
datasource.username=root
datasource.password=123

datasource.maxActive=10
datasource.maxIdle=2
datasource.maxWait=120000
datasource.whenExhaustedAction=1
datasource.validationQuery=select 1 from dual
datasource.testOnBorrow=true
datasource.testOnReturn=false

c3p0.acquireIncrement=3
c3p0.initialPoolSize=3
c3p0.idleConnectionTestPeriod=900
c3p0.minPoolSize=2
c3p0.maxPoolSize=50
c3p0.maxStatements=100
c3p0.numHelperThreads=10
c3p0.maxIdleTime=600

hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect=org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.jdbc.batch_size=25
hibernate.jdbc.fetch_size=50
hibernate.show_sql=true
hibernate.connection.release_mode=after_transaction

#bbscs.isloadconfig=false
#bbscs.safePath=C:/safe/

#cache.config=oscache.properties
#cacheup.config=oscache_up.properties
#cachefl.config=oscache_fl.properties

------------------------------------------------------------------------------------

引用   Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。


DBCP数据源方式:
    DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。下面是使用DBCP配置MySql数据源的配置片断:

Xml代码 复制代码

  1. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"           
  2.         destroy-method="close">           
  3.     <property name="driverClassName" value="com.mysql.jdbc.Driver" />          
  4.     <property name="url" value="jdbc:mysql://localhost:3309/sampledb" />          
  5.     <property name="username" value="root" />          
  6.     <property name="password" value="1234" />          
  7. </bean>    

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3309/sampledb" /> <property name="username" value="root" /> <property name="password" value="1234" /> </bean>



BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性:

  •     defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;
  •     defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;
  •     maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
  •     maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
  •     maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
  •     validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据, 如你可以简单地设置为:“select count(*) from user”;
  •     removeAbandoned:是否自我中断,默认是 false ;
  •     removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;
  •     logAbandoned:是否记录中断事件, 默认为 false;
分享到:
评论

相关推荐

    Spring数据库连接等配置加密

    本文将详细探讨"Spring数据库连接等配置加密"这一主题。 首先,我们来看`dbconfig.properties`文件,这是Spring项目中常见的用于存储数据库连接配置的文件。通常,这个文件会包含如下内容: ``` # 数据库连接配置 ...

    Spring boot连接oracle数据库JDBC配置步骤

    使用以上配置后,可以使用 Spring Boot 的测试工具来测试数据库连接是否正常。例如,可以使用 Spring Boot 的 `JdbcTemplate` 来执行一个简单的查询操作: ```java @RestController public class ...

    Spring框架数据库连接配置全指南

    在现代企业级应用开发中,Spring框架以其简洁的设计和强大的功能成为了后端开发的首选。数据库作为应用的核心组件之一,其连接配置的合理性直接...合理的数据库连接配置不仅可以提高应用的性能,还可以简化开发工作。

    初学SpringCloud连接Oracle数据库

    为了在SpringCloud服务中使用这个数据库连接,你可能还需要配置Ribbon或Feign客户端,以在微服务间进行数据交互。Ribbon是客户端负载均衡器,Feign是一个声明式HTTP客户端。配置它们可以使你的服务通过服务名而不是...

    spring连接数据库代码

    数据库连接配置 在 dataSource 中,我们定义了四个属性:driverClassName、url、username 和 password。这些属性用于配置数据库连接。driverClassName 指定了数据库驱动程序的类名,url 指定了数据库的连接 URL,...

    spring框架、数据库池连接等之间连接的jar包.rar

    在Spring中配置数据库连接池,通常需要在配置文件(如`applicationContext.xml`)中添加相应的bean定义。例如,如果使用HikariCP,配置如下: ```xml ``` 在上述配置中,我们指定了数据源类型...

    有数据库连接配置的SSM框架整合

    下面我们将深入探讨SSM框架整合以及如何进行数据库连接配置。 **Spring框架** Spring是Java开发中的一个核心框架,它提供了依赖注入(DI)和面向切面编程(AOP)功能,使得代码更加模块化,易于测试和维护。在SSM中...

    Java项目中数据库连接配置全指南

    本文将详细介绍如何在Java项目中配置数据库连接信息,包括使用JDBC、连接池技术、配置文件管理、环境变量以及Spring框架的数据库连接配置。 数据库连接配置是Java项目成功的关键。通过本文的详细介绍,读者应该能够...

    spring连接数据库实例

    同时,项目结构应包含Spring的配置文件(如`applicationContext.xml`)和数据库连接相关的bean定义。此外,确保数据库服务器运行正常,连接参数正确无误。 总结来说,这个"spring连接数据库实例"主要涵盖了Spring...

    spring配置数据库文件

    spring配置数据库文件,连接数据库的一写配置文件

    Spring中连接各个数据库

    - `BasicDataSource`类来自Apache Commons DBCP库,它是一个连接池实现,可以高效管理数据库连接。`&lt;bean&gt;`标签定义了一个名为`dataSource`的bean,它的类型是`org.apache.commons.dbcp.BasicDataSource`。 - `...

    spring mvc jdbc 连接数据库配置说明

    spring mvc jdbc 连接数据库配置说明

    spring 数据库动态切换

    4. **配置Bean**:将自定义的RoutingDataSource作为Spring的Bean注册,这样其他需要数据库连接的地方就可以直接注入这个Bean,而无需关心具体连接的是哪个数据库。 5. **测试与验证**:编写测试用例,确保在不同...

    spring连接池配置

    Spring框架提供了多种配置数据库连接池的方式,其中C3P0是一种广泛使用的开源连接池实现。本文将详细解析一个具体的Spring配置示例,通过分析`applicationContext.xml`文件中的配置项,帮助读者理解如何有效地配置C3...

    spring整合数据库连接的几种方式

    在Spring框架中,整合数据库连接是开发Web应用的常见任务,它提供了多种方式来管理数据库连接池,确保高效、稳定的数据交互。以下是Spring整合数据库连接的三种主要方式:DBCP、C3P0和Proxool,以及它们各自的特点和...

    数据库连接池 java 整理

    为了优化性能,数据库连接池会根据预设的配置动态调整连接池大小,如最大连接数、最小连接数、空闲超时时间等。同时,它还提供了一些健康检查和监控功能,以便开发人员能够实时了解连接池的状态,及时发现并解决问题...

    Spring所需jar包包括数据库连接池

    在Spring框架中,使用C3P0可以提高数据库连接的效率,避免频繁创建和关闭连接的开销。C3P0提供了许多配置参数,如最小连接数、最大连接数、测试连接的间隔时间等,以适应不同应用的需求和性能优化。 在"SpringIOC...

    Spring boot 数据库连接断线重连问题

    Spring Boot 数据库连接断线重连问题解决方案 ...Spring Boot 数据库连接断线重连问题可以通过配置数据源和调整配置参数来解决。同时,需要确保防火墙不会自动断开数据库连接,以确保应用程序的稳定性。

    boot-crmSpring数据库开发--SpringJDBC的配置

    在Spring框架中,Spring JDBC是连接数据库的重要模块,它提供了对JDBC的抽象层,使得开发者可以更加方便、高效地进行数据库操作。本教程将详细讲解如何在Spring Boot项目中配置Spring JDBC,以便进行数据库开发。 ...

Global site tag (gtag.js) - Google Analytics