在java中使用PreparedStatement时,会修改String中的内容

时间:2014-03-16 09:42:03

标签: java mysql sql

目前我想在mysql数据库中插入一个包含很多特殊字符的字符串,因此我在java中使用PrepareStatement。

  

我的sql命令:

 String st = "INSERT INTO SET (ID,AUTHOR,TEXT) VALUES (?,?,?)";
 PreparedStatement stm = con.prepareStatement(st);
 stm.setString(1, ID);
 stm.setString(2, author);
 stm.setString(3, text);
 System.out.println(text);*
 System.out.println(stm.toString());**

问题是当我使用setString方法时,我的字符串的内容被修改了。
原始字符串的内容*:

  

为什么有机体会以他们的方式进化?在那儿   影响方向的限制或约束   进化改变?虽然在1917年D'Arcy Thompson说   该...


通过setString方法**:

添加到PreparedStatement时的字符串内容
  

插入SET(ID,AUTHOR,TEXT)值   (1693,'Ws','为什么有机体会进化   他们这样做的方式?? ?有限制或约束吗?   影响进化变化的方向?? ?虽然在? ?1917年?   ?D'Arcy Thompson表示......

我不知道为什么会有'?'标记出现在字符串的内容中.....
有人可以帮助我吗?非常感谢你。

P / S:数据库中的字符串是带有'?'的修改后的字符串标记。

0 个答案:

没有答案