前言:在項目編程過程中,遇到這麼一個問題。
需要將 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'
格式