Skip to content

PreparedStatement 是 Statement 接口的子接口,继承于父接口中所有的方法。它是一个预编译的 SQL 语句,原理如下图:

PreparedStatement:执行sql的对象1. SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题 1. 输入用户随便,输入密码:

  • a' or 'a' = 'a
    1. sql

:

select * from user where username = 'fhdsjkf' and password = 'a' or 'a' = 'a' 2. 解决sql注入问题:使用PreparedStatement对象来解决 3. 预编译的SQL:参数使用?作为占位符 4. 步骤: 1. 导入驱动jar包

  • mysql-connector-java-5.1.37-bin.jar

注册驱动 3. 获取数据库连接对象

  • Connection

定义

  • sql

注意:sql的参数使用?作为占位符。 如:

select * from user where username = ? and password = ?; 5. 获取执行sql语句的对象 PreparedStatement Connection.prepareStatement(String sql)

6. 给?赋值:

* 方法: setXxx(参数1,参数

参数1:?的位置编号 从1 开始 * 参数2:?的值 7. 执行sql,接受返回结果,不需要传递sql语句

8. 处理结果 9. 释放资源 示例代码:

5. 注意:后期都会使用PreparedStatement来完成增删改查的所有操作 1. 可以防止SQL注入 2. 效率更高

本站总访问 — 次