mySQL 데이터베이스 테이블에 데이터가 있습니다. 이 데이터를 선택하고 Netezza 데이터베이스 테이블에 삽입하려고합니다. 스프링 프레임 워크를 사용하고 있으며 Student라는 엔티티 클래스가 있습니다.
mySQL 데이터베이스 테이블의 일부 필드는 정수 형식이지만 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를 올바르게 허용하지 않습니까?
당신이 사용하지 않는 경우 에는 SQL 매개 변수를 이름으로 바인딩 할 수있는 NamedParameterJdbcTemplate
일반보다 선호 JdbcTemplate
하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다