DataBase/MySql
java.sql.SQLException: No value specified for parameter 3
태하팍
2019. 1. 9. 14:13
반응형
해당 에러는 scala + mysql에서 insert + update를 하고자할 때 났다.
쿼리 스트링은 아래와 같다.
val insertSql =
"""
|insert into 테이블 (name, age )
|values (?,?)
|ON DUPLICATE KEY UPDATE name = ?, age =?
""".stripMargin
java.sql.SQLException: No value specified for parameter 3
에러는 아래에서 코드가 추가되지 않아서였다.
targetList.foreach {
t =>
val name = t._1
val age = t._2
if (age > 20){
insertStmt.setString(1, name)
insertStmt.setInt(2, age)
insertStmt.addBatch()
insertStmt.clearParameters()
}
}
insertStmt.executeBatch()
insertStmt.close()
connection.close()
즉, 2번째 ? 까지는 채워졌는데 3,4 번째 ?는 채워지지 않아서 이다.
그러므로 insertStmt.setString(3, name)와 insertStmt.setInt(4, age)가 필요하다.
- END
반응형