将字符串放入prepared语句
问题描述:
我知道使用Statement和纯String是不好的编程,而且我需要使用preparedStatement来避免SQL Injections。 但是,我可以创建字符串,然后将该字符串置于preparedStatement,或者是这样使用Statement?将字符串放入prepared语句
例如:
String sql = "SELECT * FROM users WHERE user_ID = ?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setLong(1, userId);
答
您可以使用ps.setString
,它是不一样的使用原始String
查询。 PreparedStatement
保证在将字符发送到数据库之前转义字符,并且您的查询应该不受sql注入攻击的影响(无论如何,这个String
)。
答
的想法是使用作为输入的参数到您的PreparedStatement
一样,是不是建立你的SQL命令,在这种情况下,以下的作品就好了:
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(`INPUT PARAMETER`);
如果不遵守这对于SQL注入攻击仍然是容易受到束缚的,因为你最终会串联字符串。
好有关这个主题的读取是这些链接:
目前还不清楚你问什么,我不知道如何代码显示了你的问题。 –