有什么更好的方法来检查名称字段的SQL注入,在JdbcTemplate.batchUpdate中命名表?

时间:2015-08-07 09:05:34

标签: java spring jdbc

在插入查询中我使用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注入中测试字段名称。 ?

1 个答案:

答案 0 :(得分:2)

1)不要在插入查询中调用序列,而是在表的id列上创建一个触发器以进行插入。请参考:How to create id with AUTO_INCREMENT on Oracle?
2)现在使用spring的批量更新来进行批量插入,即jdbcTemplate.batchUpdate
现在,在插入查询中,您不再需要定义id,每次在表上插入时,都会触发触发器并且id将递增。
3)使用Prepared Statement进行插入查询以避免sql注入。