Spring 动态配置数据源

Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。
第一种配置: Apache的DBCP需要导入两个包: commons-pool.jar 和commons-dbcp.jar 配置代码如下
下面是根据资源文件配置数据源的 所以必须在classpath下面建立
dbConnection.properties资源文件 内容如下: jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.161/sanco
jdbc.username=sancoweb
jdbc.password=sancoweb

<!-- 读取配置文件利用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 注意id name都是已经定义好的-->
     <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="location">
           <value>classpath:dbConnection.properties</value>
        </property>
     </bean>
     <!-- 定义数据源 从配置文件中取出 驱动 连接字符串 用户名 密码 注意此时要导入几个包-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
       <property name="driverClassName">
          <value>${jdbc.driverClassName}</value>
       </property>
       <property name="url">
          <value>${jdbc.url}</value>
       </property>
       <property name="username">
          <value>${jdbc.username}</value>
       </property>
       <property name="password">
          <value>${jdbc.password}</value>
       </property>
    </bean>
如果不需要资源文件就直接可以通过:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
       <property name="driverClassName">
          <value> com.mysql.jdbc.Driver</value>
       </property>
       <property name="url">
<value> jdbc:mysql://192.168.1.161/sanco</value>
       </property>
       <property name="username">
          <value> sancoweb </value>
       </property>
       <property name="password">
          <value> sancoweb </value>
       </property>
    </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;
第二种配置数据源的方式:
C3P0是一个开放源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现了JDBC3和JDBC2扩展规范说明的Connection 和Statement 池。C3P0类包位于<SPRING_HOME>c3p0-0.9.0.4.jar。下面是使用C3P0配置一个Oracle数据源:
我已经将其放到了附件中!如果觉得有帮助 请下载

猜你喜欢

转载自ruanqiangbeyond201208043532.iteye.com/blog/1700639
今日推荐