我正在使用jdbcTemplate的Prepared语句将一些数据写入表。目前,我面临以下异常,并且不确定自己在做什么错。
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作为模板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句