我在mySQL数据库表中有数据。我正在选择此数据,然后尝试将其插入到Netezza数据库表中。我正在使用spring框架,并且有一个称为Student的实体类。
mySQL数据库表中的某些字段为Integer格式,但Netezza中的等效字段为字符格式。
我正在使用JDBC模板,并从mySQL获取数据并将该Student对象插入Netezza。
这是我的方法:
String sqlStudent="INSERT INTO STUDENT(STUDENTID,CLASSID,COURSEID,TESTDATE,SCOREDATE) VALUES (?,?,?,?,?)";
netezzaJDBCTemplate.update(sqlStudent,new Object[] {student.getStudentId(),student.getClassId(),student.getCourseId(),student.getTestDate(),student.getScoreDate)});
执行此操作时出现错误。我什至尝试对INSERT进行硬编码。
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [INSERT INTO STUDENT(STUDENTID,CLASSID,COURSEID,TESTDATE,SCOREDATE) VALUES (1521995,134,21,'2014-02-15 00:00:00','2014-02-15 00:00:00') )]; nested exception is org.netezza.error.NzSQLException: Parameter Index out of range: 1
这是因为两个数据库之间的列数据类型不同吗?还是我想念其他东西?
请帮忙。
new studentMapper()
可能是问题所在。JdbcTemplate的更新方法不会接受RowMapper正确吗?
如果您不使用,请NamedParameterJdbcTemplate
尝试使用常规JdbcTemplate
而不是常规,这样可以将sql参数与名称绑定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句