用jdbcTemplate做insert,db用的是oracle,其中有vo.getTypeId()或者其它任意字段值为空,就出现异常,org.springframework.jdbc.UncategorizedSQLException,提示“无效的列类型”,
代码如下,但是在单独把sql提取出来运行是正确的,难道PreparedStatementCallback不支持插入空值字段?疑惑中
public int insert(MsgInfo vo) {
StringBuffer sql = new StringBuffer();
sql.append("insert into ");
sql.append(TABLE_NAME);
sql.append("(MSG_ID,MSG,SENDER_ID,SEND_TIME,TYPE_ID,MSG_STATUS) ");
sql.append("values(");
sql.append("msg_info_seq.nextval ");
sql.append(",?,?,?,?,?");
sql.append(")");
Object[] param = new Object[] { vo.getMsg(), vo.getSenderId(),
vo.getSendTime(), vo.getTypeId(), vo.getMsgStatus() };
return jdbcTemplate.update(sql.toString(), param);
}
代码如下,但是在单独把sql提取出来运行是正确的,难道PreparedStatementCallback不支持插入空值字段?疑惑中
public int insert(MsgInfo vo) {
StringBuffer sql = new StringBuffer();
sql.append("insert into ");
sql.append(TABLE_NAME);
sql.append("(MSG_ID,MSG,SENDER_ID,SEND_TIME,TYPE_ID,MSG_STATUS) ");
sql.append("values(");
sql.append("msg_info_seq.nextval ");
sql.append(",?,?,?,?,?");
sql.append(")");
Object[] param = new Object[] { vo.getMsg(), vo.getSenderId(),
vo.getSendTime(), vo.getTypeId(), vo.getMsgStatus() };
return jdbcTemplate.update(sql.toString(), param);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货