南大通用使用jdbc插入time时间类型为00:00:00的问题解析

问题场景:

数据库数据类型:

datetime HOUR TO SECOND    -- 代表时分秒类型 hh:mm:ss,例如:10:58:13

 在使用 PreparedStatement 进行set数据的时候执行结果为00:00:00

问题原因:

在setObject的时候,set的是一个时间字符串,南大通用不知道什么原因,没办法识别,执行转化为时间类型再进行set就可以了

代码操作是:

 public void incrementPstmSetObject(PreparedStatement pstm, int index, Object object) {
        try {
            if (object == null) {
                pstm.setObject(index, object);
            } else {

                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
                try {
                    Date parse = simpleDateFormat.parse(object.toString());
                    long time = parse.getTime();
                    Time time1 = new Time(time);
                    pstm.setObject(index, time1);
                } catch (ParseException e) {
                    pstm.setObject(index, object);
                }
            }

        } catch (SQLException e) {
            throw new DtsException("增量pstm.setObject异常,异常信息:" + ExceptionUtil.getStackTrace(e));
        }
    }

你可能感兴趣的:(南大通用,sql)