Я недавно обновился с sqlite-jdbc-3.7.2.jar до sqlite-jdbc-3.26.0.jar. Я заметил, что запрос вставки в моем коде не выполняется с исключением «java.sql.SQLException: значения, не связанные с оператором».
Ниже приведен фрагмент кода, который отлично работает для предыдущей версии sqlite:
String sqlStatement = "INSERT INTO table_name(id,name,type,author,size) VALUES (?,?,?,?,?)";
try
{
Connection conn = this.connect(<name>);
PreparedStatement pstmt = conn.prepareStatement(sqlStatement))
{
pstmt.setInt(1, rs.getInt(<value>));
pstmt.setString(2, rs.getString(<value>));
pstmt.setInt(3, rs.getInt(<value>));
if (somecondition)
{
pstmt.setString(4, rs.getString(<Value>));
pstmt.setInt(5, rs.getInt(<value>));
}
pstmt.executeUpdate();
}
}
catch(Exception e)
{
//handling of exception goes here
}
Я прочитал примечания к выпуску https://www.sqlite.org/changes.html и проверил, что в рамках усовершенствований планировщика запросов некоторые вещи были изменены (Планировщик запросов проверяет значения связанных параметров, чтобы определить, можно ли использовать частичный индекс.
).
Но мне до сих пор не ясно, что это было за улучшение и как оно влияет на мой код.
Также кто-нибудь может подсказать мне, как исправить вышеуказанный код?
Спасибо,
Ketaki