在插入查询中我使用SEQUENCE,因此我拒绝使用SimpleJdbcInsert .... executeBatch(data);
String sql = "INSERT INTO "+ schema +"."+ tableName +" (id, " + fieldName1 + ", " + fieldName2 + ") VALUES (BUF_SEQ.nextval, ?, ?)";
List<Object[]> recordValues = new ArrayList<Object[]>();
//... add values of records to recordValues list
// run bash update for insert
jdbcTemplate.batchUpdate(sql, recordValues);
也许有人可以建议更好的方式使用Springframework jdbc? 要插入大量记录。 在SQL注入中测试字段名称。 ?
答案 0 :(得分:2)
1)不要在插入查询中调用序列,而是在表的id列上创建一个触发器以进行插入。请参考:How to create id with AUTO_INCREMENT on Oracle?
2)现在使用spring的批量更新来进行批量插入,即jdbcTemplate.batchUpdate
现在,在插入查询中,您不再需要定义id,每次在表上插入时,都会触发触发器并且id将递增。
3)使用Prepared Statement进行插入查询以避免sql注入。