在java中使用PrepareStatement时,会修改字符串中的内容
目前我想在mysql数据库中插入一个包含很多特殊字符的字符串,因此我使用java中的PrepareStatement 我的sql命令: 问题是,当我使用setString方法时,字符串的内容被修改了。 原始字符串的内容*: 为什么生物体会以这样的方式进化? 有 影响移动方向的限制或约束 进化变化? 虽然在 1917 达西·汤普森说 那个... 通过setString方法**添加到PreparedStatement时字符串的内容: 插入到集合ID、作者、文本值中 1693年,“Ws”,“为什么生物体在进化 他们的行为方式?是否存在限制或约束 影响进化变化的方向?虽然在?1917? D'Arcy Thompson说 我不知道为什么字符串的内容中会出现“?”标记。。。。。 有人能帮我吗?多谢各位在java中使用PrepareStatement时,会修改字符串中的内容,java,mysql,sql,Java,Mysql,Sql,目前我想在mysql数据库中插入一个包含很多特殊字符的字符串,因此我使用java中的PrepareStatement 我的sql命令: 问题是,当我使用setString方法时,字符串的内容被修改了。 原始字符串的内容*: 为什么生物体会以这样的方式进化? 有 影响移动方向的限制或约束 进化变化? 虽然在 1917 达西·汤普森说 那个... 通过setString方法**添加到PreparedStatement时字符串的内容: 插入到集合ID、作者、文本值中 1693年,“W
p/S:数据库中的字符串是带有“?”标记的修改字符串 一,。为什么不使用setXXX来设置ID和author呢?2.你认为你的弦为什么变了?它在数据库中看起来正常吗?如何读取文本变量?它是来自文件还是什么?你在哪里看到这个字符串?这是stm.toString的结果吗?如果是这样,那就不是你应该关心的。您应该关心的是插入到数据库中的值。另外,ID和author也应该是语句的参数。然后作为参数传递的字符串已经包含这些字符,错误就在您没有向我们展示的代码中。我猜您的字符串包含数据库字符编码中不存在的不可见字符。尝试将每个字符转储为int,并查看是否有隐藏字符。
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());**