【问题标题】:initSql property and DriverManagerDataSourceinitSql 属性和 DriverManagerDataSource
【发布时间】:2011-09-22 08:54:34
【问题描述】:

我为我的junits配置了以下DriverManagerDataSource

<bean id="myDS"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${ds.driver}"/>
    <property name="url" value="${ds.url}"/>
    <property name="username" value="${ds.username}"/>
    <property name="password" value="${ds.password}"/>
</bean>

现在我想添加initSql 属性以使DS 在连接创建时执行一条sql 命令。我尝试了以下配置,但它不起作用。

<bean id="myDS"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${ds.driver}"/>
    <property name="url" value="${ds.url}"/>
    <property name="username" value="${ds.username}"/>
    <property name="password" value="${ds.password}"/>
    <property name="connectionProperties">
      <props>
        <prop key="initSql">select set_limit(0.1)</prop>
      </props>
    </property>
  </bean>

如何在DriverManagerDataSource 上添加initSql 属性?

【问题讨论】:

  • 不起作用是什么意思,是出现异常还是查询不起作用?您使用的是哪个数据库/驱动程序 - 它是否支持 initSql 属性
  • 没有错误,但设置initSql 没有考虑到(junit 结果不是预期的)。数据库是 Postgresql,驱动程序是来自jdbc.postgresql.org

标签: java spring jdbc connection-pooling


【解决方案1】:

你可以看看DBCP basic datasource,它支持在创建连接时指定一组要执行的sql。

不建议将 DriverManagerDatasource 用于部署,因为它不做任何连接池。最好使用DBCP或CP30。

【讨论】:

猜你喜欢
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 2021-02-28
  • 2012-10-29
  • 2018-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多