通过Spring xml数据源配置postgresql驱动程序

时间:2015-12-16 11:18:06

标签: java sql spring postgresql

我一直在尝试使用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执行此操作吗?我试图搜索,但我没有找到任何有用的东西,因为没有很多人真正使用它。

1 个答案:

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

如果有人有更好/更完整的答案,我会检查出来;)