Doris数据库使用jdbcTemplate插入或修改的内容含有单引号的问题

今天遇到一个问题,做一个批量插入的功能使用jdbcTemplate.batchUpdate(String sql, List batchArgs);

sql是包含占位符的insert语句:insert into talbeA (id,name) values(?,?)

batchArgs是具体参数数组:{[1,'A'],[2,'B']}类似这种。

如果name的值带有单引号,类似于 I'm这种。jdbcTemplate.batchUpdate解析后的sql会将一个单引号变成两个单引号即I''m这种。最终的sql语句insert into talbeA (id,name) values(3,'I''m');

对于mysql数据库来说,这种语句是可以被执行的,由于我这里使用的库是doris数据库,这种两个单引号还是会报错的。只能用\'这种转义符。但是jdbcTemplate.batchUpdate遇到单引号就会直接变成两个,转义这个也没有用。所以最终使用jdbcTemplate.execute方法,也就是直接将sql拼接完再执行。不使用占位符的方法。

 
  

 
 

你可能感兴趣的:(大数据,mysql,java后端,big,data,数据库,sql)