使用 PreparedStatement 插入数据的 JdbcTemplate 更新异常
Exception with JdbcTemplate update using PreparedStatement to insert data
我正在使用 jdbcTemplate 的准备语句将一些数据写入 table。目前,我面临以下异常,我不确定自己做错了什么。
private void insertdata(String time, String data, Datasource datasource){
String sql = "insert into table1 (columns1, columns2) values (:time, :data)";
jdbcTemplate jdbctemplate = new jdbcTemplate(datasource);
Object[] params = {time, data};
int[] types = {Types.VARCHAR, Types.VARCHAR};
try{
jdbctemplate.update(sql, params, types);
}catch(Exception e){
//some error handling
}
}
我在日志中收到以下异常。
PreparedStatementCallback; SQL [insert into table1 (columns1, columns2) values (:time, :data)]; Parameter index out of range (1 > number of parameters, which is 0).; nested exception is java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
我不知道我哪里弄错了
您仍在使用 JDBC - 因此请将您的语句重新编码为
String sql = "insert into table1 (columns1, columns2) values (?,?)";
你会没事的或
使用 NamedParameterJdbcTemplate 作为模板。
JdbcTemplate 不支持命名参数,如 (:Name, :ID) 使用 (?,?) 占位符代替或使用 NamedParameterJdbcTemplate 或 SimpleJdbcDaoSupport 来修复错误
我正在使用 jdbcTemplate 的准备语句将一些数据写入 table。目前,我面临以下异常,我不确定自己做错了什么。
private void insertdata(String time, String data, Datasource datasource){
String sql = "insert into table1 (columns1, columns2) values (:time, :data)";
jdbcTemplate jdbctemplate = new jdbcTemplate(datasource);
Object[] params = {time, data};
int[] types = {Types.VARCHAR, Types.VARCHAR};
try{
jdbctemplate.update(sql, params, types);
}catch(Exception e){
//some error handling
}
}
我在日志中收到以下异常。
PreparedStatementCallback; SQL [insert into table1 (columns1, columns2) values (:time, :data)]; Parameter index out of range (1 > number of parameters, which is 0).; nested exception is java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
我不知道我哪里弄错了
您仍在使用 JDBC - 因此请将您的语句重新编码为
String sql = "insert into table1 (columns1, columns2) values (?,?)";
你会没事的或
使用 NamedParameterJdbcTemplate 作为模板。
JdbcTemplate 不支持命名参数,如 (:Name, :ID) 使用 (?,?) 占位符代替或使用 NamedParameterJdbcTemplate 或 SimpleJdbcDaoSupport 来修复错误