java.sql.SQLException: No value specified for parameter 3

2019. 1. 9. 14:13DataBase/MySql

반응형


해당 에러는 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

반응형