2011-09-22 95 views
0

我爲我的junitsinitSql財產和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> 

配置了以下DriverManagerDataSource現在我想添加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> 

如何添加一個DriverManagerDataSourceinitSql財產?

+0

你是什麼意思不起作用,你得到一個異常或查詢不起作用?你正在使用哪個數據庫/驅動程序 - 它是否支持initSql屬性 – gkamal

+0

沒有錯誤,但沒有考慮到initSql的設置(junit結果不是被忽略的)。 db是Postgresql,驅動程序來自http://jdbc.postgresql.org – tbruyelle

回答

0

您可以看看DBCP basic datasource,它支持指定一組要在創建連接時執行的sqls。

不建議將DriverManagerDatasource用於部署,因爲它不執行任何連接池。最好使用DBCP或CP30。

+0

正如我所說的,我在測試環境中使用'DriverManagerDataSource' – tbruyelle

+0

但是DBCP將爲您的目的而工作。見鏈接:http://mike.hostetlerhome.com/2009/02/20/be-careful-with-drivermanagerdatasource/ –