首页 > 解决方案 > 在 Java Spring 应用程序中从 Oracle 迁移到 MySQL:连接池

问题描述

我正在使用一个主要执行数据库操作的 Java Spring 应用程序。输入是数据库行,输出是不同表中的数据库行。目前它使用Oracle 10g 数据库。目前正在分析一个关于迁移到 MySQL 的新需求。

当前的 oracle 连接是使用连接池设置的。我正在尝试对 MySQL 连接做同样的事情,并且正在研究使用哪个DataSource。在oracle连接中,oracle.jdbc.pool.OracleDataSource是使用的。我想过使用com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSourceMySQL,但它没有 oracle 数据源所具有的属性,而且我还没有在数据库上工作过那么久知道所需属性的等效性。当前的属性设置如下:

<property name="connectionCacheName" value="App_db_connection_pool" />
<property name="connectionCacheProperties">
    <props>
        <prop key="MinLimit">${MinLimit}</prop>
        <prop key="MaxLimit">${MaxLimit}</prop>
        <prop key="InitialLimit">${InitialLimit}</prop>
        <prop key="InactivityTimeout">${InactivityTimeout}</prop>
        <prop key="ConnectionWaitTimeout">${WaitTimeout}</prop>
    </props>
</property>

我需要设置具有与上述相同或相似属性的 MySQL 连接。我应该使用什么数据源?

PS:应用程序在Java代码中使用了很多查询,所以使用像hibernate这样的ORM框架是不可能的。

标签: mysqlspringoraclejdbcconnection-pooling

解决方案


我最后使用了C3P0。相应的属性如下所示:

  <property name="initialPoolSize" value="${InitialLimit}"/>
  <property name="minPoolSize" value="${MinLimit}"/>
  <property name="maxPoolSize" value="${MaxLimit}"/>
  <property name="maxIdleTimeExcessConnections" value="${InactivityTimeout}"/>
  <property name="checkoutTimeout" value="${WaitTimeout}"/>

推荐阅读