Java字符串作为文本变量

时间:2012-08-13 16:36:46

标签: java mysql string

我试图通过java在我的MYSQL数据库中插入一些文本。

我试图将其放入的变量是一个TEXT变量。我的问题是,当我尝试插入它时,它会选择'并认为它是一个混乱的插入。

这是插入内容:

INSERT INTO TermsAndConditions (name,description,ownerID)  VALUES  ('bar condtions','Don't be stealin my stuff','2')

它认为我用“不要”这个词搞砸了

我想做的是做尽可能少的工作,告诉字符串只是接受所有字符需要(他们的意志不仅仅是')才能拥有“\”或“\£”在他们面前。

我知道我可以使用替换,但对于所有角色来说都是真正的痛苦!我问,因为他们必须是另一个更简单的解决方案!

由于

5 个答案:

答案 0 :(得分:3)

您最好的选择可能是使用预处理语句(如果您不控制插入的输入以避免sql注入,那么它本身就是一个好主意!)

此网站提供了如何执行此操作的示例:http://www.exampledepot.com/egs/java.sql/InsertPs.html

对于您的示例,它将类似于:

// Prepare a statement to insert a record
String sql = "INSERT INTO TermsAndConditions (name,description,ownerID)  VALUES  (?,?,?)";
PreparedStatement pstmt = connection.prepareStatement(sql);

// Set the values
pstmt.setString(1, "bar condtions");
pstmt.setString(2, "Don't be stealin my stuff");
pstmt.setString(3, "2");

// Insert the row
pstmt.executeUpdate();

答案 1 :(得分:2)

你需要逃避单引号,或者更好的是,使用预备语句。

答案 2 :(得分:2)

您应该使用PreparedStatement来逃避您的特殊字符。

答案 3 :(得分:1)

您是否尝试过使用预先准备好的声明?这里的问题是正确地逃避字符串的问题。准备好的语句可以为您处理,并减少不洁和丑陋的连接代码。

http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

答案 4 :(得分:-1)

你需要像这样逃避单引号:

INSERT INTO TermsAndConditions (name,description,ownerID)  VALUES  ('bar condtions','Don\'t be stealin my stuff','2')