使用java问题将数据插入sql

时间:2013-12-06 07:46:52

标签: java sql xml

我遇到了从java代码插入SQL数据库的问题。 我正在使用INSERT sql查询使用java代码将数据从XML文件输入到SQL数据库。 您可以假设名为“描述”的列。 想象一下,XML中有一条包含撇号(')的记录。由于包含在数据中的撇号引起的错误,程序崩溃。 我知道手动我们可以添加另一个撇号并使其工作,但想象10.000记录的数据,我们如何处理这个问题?

2 个答案:

答案 0 :(得分:3)

不要执行此操作(字符串连接):

String sql = "insert into MyTable (description) values ('" + value + "')";
Statement st = connection.createStatement();
st.executeUpdate(sql);

执行执行此操作(prepared statement):

PreparedStatement ps = connection.prepareStatement(
    "insert into MyTable (description) values (?)"
);
ps.setString(1, value);
pt.executeUpdate();

该值将为您正确转义。这不仅可以防止您提到的事故,还可以帮助您防御SQL注入攻击。

幽默插图:

Exploits of a mom

Source

答案 1 :(得分:0)

您有两个选项,您应该使用PreparedStatement并绑定您的参数。或者,如果你真的,真的,想要 - 你可以使用StringEscapeUtils.escapeSql(str)