我一直在尝试使用xml Spring配置文件中声明的postgresql数据源配置连接。
<bean id="myDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/dbname" />
<property name="username" value="postgres" />
<property name="password" value="" />
<property name="socketTimeout" value="10"/>
</bean>
我知道,我不应该在春天使用DriverManagerDataSource
课程(我们很快会转到C3p0或DBCP),因为它不是真正的合并。
我试图设置postgresql连接的socketTimeout值(这里描述https://jdbc.postgresql.org/documentation/head/connect.html),当然,&#34; socketTimeout&#34;不是数据源的属性,因此它不起作用。
是否可以通过数据源xml的配置来完成此操作?或者我应该在别处做什么?因为数据源管理连接我不认为我能够做到
props.setProperty("timeout",30);
Connection conn = DriverManager.getConnection(url, props);
我甚至可以使用DriverManagerDataSource执行此操作吗?我试图搜索,但我没有找到任何有用的东西,因为没有很多人真正使用它。
答案 0 :(得分:9)
谢谢M. Deinum,我能够找到。 实际上,即使知道该属性被命名为“connectionProperties”,我也没有找到很多答案(也许人们很少这样使用它?)。所以我发布了它:
<bean id="myDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/dbname" />
<property name="username" value="postgres" />
<property name="password" value="" />
<!--<property name="socketTimeout" value="10"/>-->
<property name="connectionProperties">
<props>
<prop key="socketTimeout">10</prop>
</props>
</property>
</bean>
如果有人有更好/更完整的答案,我会检查出来;)