您的位置:首页 > 数据库 > MySQL

sql语句作为字段保存到mysql数据库中无法通过的问题

2017-09-08 11:32 483 查看
前言:在项目编程过程中,遇到这么一个问题。

需要将 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'


格式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐