使用spring在AS400日期格式配置中的DB2

时间:2014-11-17 16:49:50

标签: date spring-jdbc db2-400

我正在尝试在DB2之后的12-31-2039之间获得一个日期,但它总是返回null。我的项目使用配置了jt400.jar JDBC驱动程序的spring JDBC。我该如何解决这个问题?在春天关注我的配置:

<bean id="dataSource" class="br.com.mycompany.persistence.driver.SecuredAS400JDBC">
    <property name="serverName"     value="${br.com.mycompany.dao.jdbc.server}" />
    <property name="databaseName"   value="${br.com.mycompany.dao.jdbc.database}" />
    <property name="libraries"      value="${br.com.mycompany.dao.jdbc.database}" />
    <property name="user"           value="${br.com.mycompany.dao.jdbc.username}" />
    <property name="password"       value="${br.com.mycompany.dao.jdbc.password}" />
    <property name="dataTruncation" value="false" />
    <property name="naming" value="sql" />
    <property name="errors" value="full" />
    <property name="trace" value="false" />
    <property name="prompt" value="false" />
</bean>

这是我的结果集操作:

private static final class rowMapperDTO implements RowMapper<AcionamentoFaixa> {

    public AcionamentoFaixa mapRow(ResultSet rs, int rowNum) throws SQLException {

        AcionamentoFaixa obj = new  AcionamentoFaixa();         
        obj.setDe(rs.getDate(4));
        obj.setAte(rs.getDate(5));

        return obj;
    }
}

1 个答案:

答案 0 :(得分:2)

我在IBM Toolbox Java官方文档中找到了答案:http://www-03.ibm.com/systems/power/software/i/toolbox/faq/jdbc.html#faqB5

  

“Toolbox JDBC驱动程序使用设置为的日期格式   IBM i系统上的缺省值。此默认值通常设置为“mdy”   它仅支持1940年到2039年之间的日期。您可以在打开JDBC连接时通过指定“日期格式”属性来覆盖日期格式。最好的选择是“ iso ”,它支持完整的四位数日期。“

所以,我尝试使用属性dateFormat将bean配置为iso,它完美运行!

<bean id="dataSource" class="br.com.mycompany.persistence.driver.SecuredAS400JDBC">
    <property name="serverName"     value="${br.com.mycompany.dao.jdbc.server}" />
    <property name="databaseName"   value="${br.com.mycompany.dao.jdbc.database}" />
    <property name="libraries"      value="${br.com.mycompany.dao.jdbc.database}" />
    <property name="user"           value="${br.com.mycompany.dao.jdbc.username}" />
    <property name="password"       value="${br.com.mycompany.dao.jdbc.password}" />
    <property name="dataTruncation" value="false" />
    <property name="naming" value="sql" />
    <property name="errors" value="full" />
    <property name="trace" value="false" />
    <property name="prompt" value="false" />
    <property name="dateFormat" value="iso" />
</bean>