2014-02-21 63 views
2

我在mySQL数据库表中有数据。我选择这些数据并尝试将其插入到Netezza数据库表中。我正在使用Spring框架并且有一个名为Student的实体类。从一个数据库表插入另一个数据库

一些在MySQL数据库表中的字段是整数格式,但在Netezza公司的相应字段的字符格式。

我使用的是JDBC模板,从MySQL获取数据并插入该学生对象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  

这是因为两个数据库之间的列数据类型不同吗?还是我缺少别的东西?

请帮忙。

+0

为什么'new studentMapper()'。 JdbcTemplate的更新方法不会接受'RowMapper'正确吗?你使用任何自定义实现? –

+0

好抓!所以我硬编码INSERT语句的值,但仍然得到一个错误 - 嵌套的异常是org.netezza.error.NzSQLException:参数索引超出范围:1 – Ram

+0

编辑的问题。 – Ram

回答

1

new studentMapper()可能是问题所在。 JdbcTemplate的更新方法不会接受RowMapper是否正确?

如果你不使用NamedParameterJdbcTemplate试图比那些允许你绑定带有名字的sql参数的常规JdbcTemplate更喜欢。

相关问题