前言:在项目编程过程中,遇到这么一个问题。
需要将 sql语句 单独作为一个字段保存到mysql数据库中。sql在处理sql语句时会出错。
java代码
String myid="111";
String sqlword="select * from citycode where id ='1'";
String sql="insert into dsm03 values('"+myid+"','"+sqlword+"')";
jdbcTemplate.execute(sql);
其中,sqlword是我要保存的sql语句
执行时,遇到下面错误。
下面是我们控制台输出的sql
insert into dsm03 values('111','select * from citycode where id ='1'')
可以看到,其中的’select * from citycode where id =’1” 是不符合sql语法规则的。
解决方法:
对sql语句进行处理,将其中的’(单引号)用”(双引号)替换,这样sql在读取sql语句时,会将”转义成sql识别的’。
String myid="111";
String sqlword="select * from citycode where id ='1'";
String newsqlword=sqlword.replace("'", "\"");//对sql语句进行转义,这样sql在读取sql语句时,会将"转义成sql识别的'
String sql="insert into dsm03 values('"+myid+"','"+newsqlword+"')";
jdbcTemplate.execute(sql);
这是控制台输出解决后的sql
insert into dsm03 values('111','select * from citycode where id ="1"')
而且保存到数据库后的字段仍然是
select * from citycode where id ='1'
格式