一、目标
1、掌握查询操作
2、掌握预编译语句对象操作
二、知识点
1、查询操作
SQL: select * from表名 --> 原始数据表 --> 结果集
JDBC:发送查询SQL语句 --> 数据库实现数据检索--->数据库将结果集反馈给java应用程序 -->将结果集实现封装
API:ResultSet对象:结果集对象(数据表-记录、字段)
//启动驱动包:build path
2、SQL注入攻击
在javaJDBC操作中Statement对象会存在SQL注入攻击的风险,原因在于Statement对象不会进行SQL语句语法的检索。
解决方案:PreparedStatement:预编译SQL语句对象
3、PreparedStatement预编译语句对象
实现:
1、指定SQL语句结构
select * from users where u_name=? and u_password=?
2、设置值
?: 占位符
通过预编译语句对象提供的setXXX方法设置值
ps.setXXX(参数1,参数2);
参数1:表示设置值的占位符索引
参数2:值
4、Statement和PreparedStatement区别
Statement对象在执行SQL语句的时候不会进行语句语法检索,但执行效率高,安全级别低,一般用于非验证操作。PreparedStatement对象在执行SQL语句之前先指定最终执行的SQL语句语法结构,并且使用占位符完成SQL语句值的传入从而提高语句的安全性,但执行效率低,一般用于验证操作。
5、工程架构
1、数据库工程架构
结构:
1、实体类 --bean
2、数据对象层 --dao层(接口、实现类)
3.conf 配置文件包
4.test包
5.util工具类
//还有jar驱动包