JDBC登录

1,893 阅读1分钟

PrepareStatement:执行sql的对象

1.SQL注入问题:在拼接sql时,有一些sql的特殊关键词参与字符串的拼接,灰枣成安全性问题

1.使用密码:'a' or 'a'='a'
2.sql: select * from user where username ="asdf" and password='a' or 'a'='a'

2.解决sql注入问题:使用PreparedStatement对象来结局

3.预编译的SQL:参数使用?作为占位符

4.步骤:

1.导入驱动
2.注册驱动
3.获取数据库连接对象Connection
4.定义sql
    * 注意:sql的参数使用?作为占位符。eg:
    select * from user where username=? and password=?;
5.获取执行sql语句的对象PreparedStatement
    Connection.prepareStatement(String sql)
6.给?赋值:
* 方法:setXxx(参数1,参数2)
    * 参数1:?的位置编号从1开始
    * 参数2:?的值
7.执行sql,接受返回结果,不需要传递sql语句
8。处理结果
9.释放资源

5.注意:后期只使用PreparedStatement来完成增删改查的操作

1.防止SQL注入
2.效率更高