`

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

    定时器(quartz+spring)读取数据库配置

    在Spring的配置文件(如applicationContext.xml)中,定义一个`SchedulerFactoryBean`,设置数据库连接信息,并开启从数据库加载Job和Trigger的配置: ```xml &lt;bean id="schedulerFactoryBean" class="org.spring...

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

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

    数据库连接池 java 整理

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics