Java で SQL バインド変数を扱う方法は?
JavaでSQLバインド変数を使用する方法では、SQL文を実行する際にPreparedStatementオブジェクトを使用します。PreparedStatementオブジェクトは実行前にSQL文をプリコンパイルし、パラメータをSQL文のプレースホルダーにバインドすることを可能にします。
以下は、PreparedStatementによるバインド変数の利用例です。
// 假设有一个名为connection的数据库连接对象
String sql = "SELECT * FROM users WHERE name = ?";
String name = "John";
try {
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, name); // 绑定变量到占位符上
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
// 处理结果集
}
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
上記のコードでは ? はプレースホルダーであり、setString() メソッドはプレースホルダーに名前変数をバインドします。これにより、SQL インジェクション攻撃が防止され、コードの保守性と再利用性が高まります。