安全访问数据库的最常见方式是使用参数化查询和预编译语句。下面是一个使用Java JDBC的代码示例:
import java.sql.*;
public class DatabaseAccess {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "myusername";
String password = "mypassword";
try (Connection conn = DriverManager.getConnection(url, username, password)) {
String query = "SELECT * FROM users WHERE username = ?";
try (PreparedStatement statement = conn.prepareStatement(query)) {
statement.setString(1, "john.doe");
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String usernameValue = resultSet.getString("username");
String passwordValue = resultSet.getString("password");
System.out.println("User ID: " + id);
System.out.println("Username: " + usernameValue);
System.out.println("Password: " + passwordValue);
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
在上面的示例中,通过使用参数化查询和预编译语句,将查询中的变量占位符(?)与实际的参数("john.doe")分开。这样可以防止SQL注入攻击,因为参数的值不会被解释为SQL语句的一部分。同时,使用try-with-resources语句来确保数据库连接、语句和结果集在使用后正确关闭,以避免资源泄漏。
上一篇:安全访问密钥保管库中的密钥