阅读量:0
要避免SQL注入攻击,可以使用PreparedStatement来替代Statement,并使用参数化查询。PreparedStatement在执行SQL语句时会自动处理特殊字符,从而避免SQL注入。
下面是一个使用PreparedStatement执行更新操作的示例代码:
String query = "UPDATE users SET name = ? WHERE id = ?"; PreparedStatement pstmt = connection.prepareStatement(query); pstmt.setString(1, "Alice"); pstmt.setInt(2, 1); int rowsAffected = pstmt.executeUpdate();
在这个示例中,pstmt.setString(1, "Alice")
和pstmt.setInt(2, 1)
分别设置了查询中的参数值,这样可以避免直接拼接字符串造成的SQL注入风险。最后调用executeUpdate()
方法执行更新操作。
除了使用PreparedStatement外,还可以使用ORM框架(如Hibernate)来操作数据库,ORM框架会自动处理SQL注入问题。在任何情况下,都应该避免直接拼接SQL字符串,而是使用参数化查询或者ORM框架来执行数据库操作。