概述
-
可以通过调用 Connection 对象的 preparedStatement(String sql) 方法获取 PreparedStatement 对象
-
PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句
-
PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示,调用 PreparedStatement 对象的 setXxx() 方法来设置这些参数. setXxx() 方法有两个参数,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值
1.插入操作
public void testInsert() throws Exception {
// 1.获取数据库连接
Connection conn = JDBCUtils.getConnection();
// 2.预编译SQL语句
String sql = "insert into customers(name, email, birth) values(?, ?, ?)";
// 3.获取PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 4.填充占位符
ps.setString(1, "哪吒");
ps.setString(2, "nezha@gmail.com");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse("2022-12-22");
ps.setDate(3, new java.sql.Date(date.getTime()));
// 5.执行SQL语句
ps.execute();
// 6.关闭资源
JDBCUtils.closeResource(conn, ps);
}
2.更新操作
public void testUpdate() {
Connection conn = null;
PreparedStatement ps = null;
try {
// 1.获取数据库连接
conn = JDBCUtils.getConnection();
// 2.预编译SQL语句
String sql = "update customers set name = ? where id = ?";
// 3.获取PreparedStatement对象
ps = conn.prepareStatement(sql);
// 4.填充占位符
ps.setObject(1, "莫扎特");
ps.setObject(2, 18);
// 5.执行SQL语句
ps.execute();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 6.关闭资源
JDBCUtils.closeResource(conn, ps);
}
}
最后
以上就是细腻柜子为你收集整理的【大数据系列之JDBC】(五):使用PrepareStatement防止SQL注入的全部内容,希望文章能够帮你解决【大数据系列之JDBC】(五):使用PrepareStatement防止SQL注入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复