- 可以通过调用 Connection 对象的 preparedStatement(String sql) 方法获取 PreparedStatement 对象
- PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句
- PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示,调用 PreparedStatement 对象的 setXxx() 方法来设置这些参数. setXxx() 方法有两个参数,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值
可以使用如下代码实现一个通用的增删改操作:
@Test
public void test() {
String sql = "update `order` set order_name = ? where order_id = ?";
update(sql, "DD", "2");
}
// 通过可变参数进行传递
public void update(String sql, Object... args) {
Connection conn = null;
PreparedStatement ps = null;
try {
// 1.获取数据库连接
conn = JDBCUtils.getConnection();
// 2.获取PreparedStatement对象
ps = conn.prepareStatement(sql);
// 3.填充占位符
for (int i = 0; i < args.length; i++) {
ps.setObject(i + 1, args[i]);
}
// 4.执行SQL语句
ps.execute();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 5.关闭资源
JDBCUtils.closeResource(conn, ps);
}
}