`
jayjayjays
  • 浏览: 215388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据源配置大全

阅读更多

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

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>

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

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 

        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</prop> 
                             <prop key="hibernate.connection.url">jdbc:hsqldb:hsql://localhost/gpcswebdb</prop>
                <prop key="hibernate.connection.username">sa</prop>
                <prop key="hibernate.connection.password"></prop>
                <prop key="hibernate.c3p0.min_size">5</prop>
                <prop key="hibernate.c3p0.max_size">20</prop>
                <prop key="hibernate.c3p0.timeout">1800</prop>
                <prop key="hibernate.c3p0.max_statements">50</prop>

                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>

                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.use_outer_join">true</prop>

                <prop key="hibernate.hbm2ddl.auto">update</prop>

                <prop key="hibernate.jdbc.batch_size">0</prop>
                <prop key="hibernate.jdbc.batch_versioned_data">true</prop>
                <prop key="hibernate.max_fetch_depth">1</prop>
                <prop key="hibernate.jdbc.use_streams_for_binary">true</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>com/citi/rpc/webentity/BusinessDay.hbm.xml</value>
                <value>com/citi/rpc/webentity/Duty.hbm.xml</value>
                <value>com/citi/rpc/webentity/Employee.hbm.xml</value>
                <value>com/citi/rpc/webentity/TeamMember.hbm.xml</value>
                <value>com/citi/rpc/webentity/Project.hbm.xml</value>
            </list>
        </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>

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

很多人都说proxool很好 —— 强烈推荐proxool,因为他不但可以监控后台。还可以有效的释放连接。在connection close时,也就是归还connection,
关闭所有的statement,并且判断是否autocommit,如果不行,就rollback,并且设置true,
可以参考proxool的org.logicalcobwebs.proxool.ConnectionResetter类
connection pool把connection reset置回initial state。

但是在网上搜索spring中配置proxool作为数据源连接池的资料却几乎找不到详细点的。So自己整理如下:

  web.xml
-------------------------
  <servlet>
    <servlet-name>proxoolServletConfigurator</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    <init-param>
      <param-name>xmlFile</param-name>
      <param-value>WEB-INF/proxool.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>proxooladmin</servlet-name>
    <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>proxooladmin</servlet-name>
    <url-pattern>/proxooladmin</url-pattern>
  </servlet-mapping>
-------------------------

  proxool.xml
-------------------------
<?xml version="1.0" encoding="UTF-8"?>
<proxool-config>
  <proxool>
    <alias>blogdb</alias>
    <driver-url>jdbc:oracle:thin:@127.0.0.1:1521:ORADB</driver-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <driver-properties>
      <property name="user" value="lizongbo"/>
      <property name="password" value="password"/>
    </driver-properties>
    <maximum-connection-count>10</maximum-connection-count>
    <house-keeping-test-sql>select 1 from dual</house-keeping-test-sql>
  </proxool>
</proxool-config>
-------------------------

spring里的两种配置:
one:  <!-- 与上面的proxool以及web.xml里结合使用-->
    <bean id="mainDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
    <value>org.logicalcobwebs.proxool.ProxoolDriver</value>
    </property>
    <property name="url">
    <value>proxool.blogdb</value>
    </property>
    </bean>

two:<!-- 单独的类似dbcp的使用-->
  <bean id="mainDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
    <property name="driver">
      <value>oracle.jdbc.driver.OracleDriver</value>
    </property>
    <property name="driverUrl">
      <value>jdbc:oracle:thin:lizongbo/password@127.0.0.1:1521:ORADB</value>    
 <!--用户名和密码写在一起才调用成功,不然会报 调用无效的参数 错误,下面设置用户名和密码的property好像是无效的,其它数据库也是这样
 比如mysql的也要把用户名和密码写在url里:<property name="driverUrl" value="jdbc:mysql://localhost:3306/blogdb?user=lizongbo&amp;password=lizongbo" />
 -->
    </property>
    <property name="user"> <!-- 必须在这里也设置,但是 proxool却不使用它,或许是个bug-->
      <value>lizongbo</value>
    </property>
    <property name="password"> <!-- 必须在这里也设置,但是 proxool却不使用它,或许是个bug-->
      <value>lizongbo</value>
    </property>
    <property name="alias">
      <value>lizongbo</value>
    </property>
    <property name="houseKeepingSleepTime">
      <value>90000</value>
    </property>
    <property name="prototypeCount">
      <value>5</value>
    </property>
    <property name="maximumConnectionCount">
      <value>100</value>
    </property>
    <property name="minimumConnectionCount">
      <value>10</value>
    </property>
    <property name="trace">
      <value>true</value>
    </property>
    <property name="verbose">
      <value>true</value>
    </property>
  </bean>

xapool 数据源配置.

<Resource auth="Container" factory="org.objectweb.jndi.DataSourceFactory"
   driverClassName="oracle.jdbc.driver.OracleDriver" maxActive="4"
   maxIdle="2" maxWait="-1" name="jdbc/defaultdb" password=""
   type="javax.sql.DataSource"
   url="jdbc:oracle:thin:@192.168.1.201:1521:"
   username="" />

 

c3p0 数据源配置.

<Resource auth="Container" factory="org.apache.naming.factory.BeanFactory"
    driverClass="oracle.jdbc.driver.OracleDriver" maxPoolSize="30" minPoolSize="1" initialPoolSize="5" acquireIncrement="2"
              idleConnectionTestPeriod="60" maxIdleTime="60"
name="jdbc/defaultdb" password=""
    type="com.mchange.v2.c3p0.ComboPooledDataSource"
    jdbcUrl="jdbc:oracle:thin:@192.168.1.201:1521:"
    user="" />

 

 Proxool 数据源配置.

<Resource
name="jdbc/defaultdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.logicalcobwebs.proxool.ProxoolDataSource"
proxool.alias="defaultdb"
user=""
password=""
delegateProperties="foo=bar"
proxool.driver-url="jdbc:oracle:thin:@192.168.1.201:1521:"
proxool.driver-class="oracle.jdbc.driver.OracleDriver"/>
 <Transaction factory="org.objectweb.jotm.UserTransactionFactory"     jotm.timeout="60" />

分享到:
评论

相关推荐

    jeecg3.5多数据源配置说明

    配置完数据源后,别忘了设置相应的权限。在Jeecg中,权限管理是非常重要的一个环节。你需要确定哪些用户或角色可以访问和修改这些数据源设置。这通常涉及到角色分配和权限策略,确保只有授权的人员才能进行数据源的...

    ssm实现多数据源配置

    4. **MyBatis配置**:在MyBatis中,需要为每个数据源创建一个SqlSessionFactory,通过`&lt;sqlSessionFactory&gt;`标签配置数据源,并设置Mapper扫描路径。 5. **Service和DAO层**:在Service层,可以通过`@Transactional...

    weblogic数据源配置

    ### WebLogic 数据源配置详解 #### 一、新建数据源 **步骤1:登录WebLogic控制台** 在开始配置之前,首先需要登录到WebLogic Server的管理控制台。WebLogic Server控制台是进行各种配置的核心界面,通过它可以...

    SpringBoot配置多数据源实现动态切换数据源

    本文将深入探讨如何在SpringBoot项目中配置多数据源,并实现数据源的动态切换,帮助你理解和掌握这一核心技能。 首先,我们理解"多数据源"的概念。在SpringBoot应用中,多数据源意味着系统能够连接并操作多个不同的...

    oracle配置数据源

    ### Oracle配置数据源详解 在IT领域中,Oracle数据库因其高度可扩展性和强大的事务处理能力而备受青睐。本文将详细解读如何配置Oracle数据源,并通过图文教程的方式引导读者完成整个配置流程。 #### 一、Oracle...

    java+hibernate双数据源配置

    - 创建两个实体配置类,如`JpaConfigPrimary`和`JpaConfigSecondary`,它们继承自`JpaBaseConfiguration`并覆盖其中的方法以设置数据源。 - 使用`@EnableJpaRepositories`注解分别指定实体管理工厂和仓储接口所在...

    mybatis-plus多数据源/动态数据源配置示例代码

    - 对于每个数据源,需要创建一个SqlSessionFactoryBean,并设置对应的DataSource,然后将其注入到MyBatis-Plus的配置中。 4. **切换数据源**: - 在业务代码中,可以通过设置ThreadLocal变量来保存当前数据源的...

    weblogic1036+db2数据源配置

    ### WebLogic 10.3.6 + DB2 数据源配置详解 #### 一、准备工作:复制DB2的JDBC驱动包至WebLogic域的lib目录 在进行数据源配置前,首先需要确保DB2的JDBC驱动已正确安装,并且能够被WebLogic服务器识别。为此,需要...

    mysql和Oracle的多数据源配置demo

    本示例"mysql和Oracle的多数据源配置demo"聚焦于如何在SpringBoot框架下同时集成和管理MySQL与Oracle这两种不同的数据库系统,以实现多数据源的配置。这在需要处理不同数据库类型或者需要实现数据冗余和故障切换的...

    SpringMVC配置多数据源实战

    在Spring配置文件中,设置`DynamicDataSource`为主数据源,这样所有未指定数据源的数据库操作都将默认使用它。 ```xml ``` 4. **事务管理器配置** 使用`PlatformTransactionManager`来处理多数据源的事务...

    weblogic连接oracle RAC数据源配置

    2. **创建数据源**:在WebLogic管理控制台中,选择“配置”-&gt;“数据源”,然后创建一个新的数据源。选择JDBC驱动类型,如"Oracle Thin",并填写相应的JNDI名称、URL、用户名和密码。 - URL格式通常是:`jdbc:...

    MyEclipse配置数据源

    在IT领域,特别是软件开发与数据库管理中,配置数据源是一项关键任务,它涉及到应用程序如何连接和访问数据库。本文将详细解析如何在MyEclipse环境中配置数据源,以实现与数据库的有效交互,主要聚焦于使用Microsoft...

    spring 动态多数据源配置代码

    - 创建`AbstractRoutingDataSource`实例,设置数据源映射和默认数据源。 - 在Spring配置中,声明`DataSourceTransactionManager`,并指定使用的`DataSource`。 - 实现策略类,用于决定当前应该使用哪个数据源。这...

    was数据源配置教程

    WAS 数据源配置教程 WAS(WebSphere Application Server)是一种基于Java的Web应用服务器,它提供了强大的数据源配置功能,允许开发者轻松地配置和管理数据库连接。在本教程中,我们将详细介绍WAS数据源配置的步骤...

    springboot多数据源配置(sqlserver,mysql)

    在本场景中,我们将探讨如何在Spring Boot中设置和管理这样的多数据源配置。 首先,我们需要了解`DruidDBConfig.java`,这是一个自定义的数据源配置类,通常用于配置Spring Boot的数据源。Druid是一个流行的数据库...

    springboot多数据源配置

    在项目结构中,可以方便地管理Maven或Gradle构建,添加和配置数据源相关的库,如MySQL JDBC驱动。 总结来说,实现Spring Boot中的多数据源配置,我们需要定义多个数据源的配置,创建对应的@Configuration类,配置...

    Springboot+Mybatis+Druid多数据源配置

    在多数据源场景下,我们可以通过Spring Boot的@ConfigurationProperties特性来配置不同的数据源。每个数据源都需要定义一套包括URL、用户名、密码和驱动类名等属性。例如: ```java @Configuration @...

    SpringBoot+gradle+mybatis多数据源动态配置

    本项目结合了SpringBoot、Gradle和MyBatis,旨在实现多数据源的动态配置,这对于处理多个数据库或者分库分表的场景尤其有用。以下是对这个项目的详细解析: **SpringBoot** SpringBoot是由Pivotal团队提供的全新...

    websphere中数据源配置说明

    在IBM WebSphere应用服务器中,数据源配置是连接应用程序到数据库的关键步骤。数据源提供了一种标准的方法来管理和共享数据库连接,确保了高效且可靠的数据库访问。以下是对WebSphere中数据源配置的详细说明: 1. *...

Global site tag (gtag.js) - Google Analytics