安全编程:防止SQL注入的Java代码实例
在Java中,防止SQL注入的一种常见方法是使用PreparedStatement。预编译语句是在执行前被解析并编译的语言结构。
以下是一个简单的Java代码例子:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class SQLInjectionPrevention {
public static void main(String[] args) {
// 数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "myusername";
String password = "mypassword";
try (Connection connection = DriverManager.getConnection(url, username, password)) {
// 预编译语句,防止SQL注入
String query = "SELECT * FROM users WHERE username = ?";
PreparedStatement statement = connection.prepareStatement(query);
statement.setString(1, username)); // 设置参数
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
System.out.println("User found with username: " + resultSet.getString("username"));
} else {
System.out.println("No user found with the given username.");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Failed to connect to database or execute query.");
}
}
}
在这个例子中,我们使用了PreparedStatement来防止SQL注入。这种方式可以确保用户输入的数据不会被解析为SQL代码。
还没有评论,来说两句吧...