(一)学习总结
1.用思维导图对本周的学习内容进行总结。
2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。
Statement对象执行SQL语句有两种情况:
- 一种是数据定义和更新语句,如CREATE、DELETE、UPDATE和INSERT等语句,使用Statement对象的executeUpdate方法执行;int executeUpdate(String sql)throws SQLException;参数sql是要执行的SQL语句,执行成功返回受影响的行数,执行失败则抛出SQLException异常,必须捕捉。
- 一种是数据查询语句,如SELECT语句,使用Statement对象的executeQuery 方法执行;
Statement存在问题1.程序可读性差2.性能低3.安全性差
PreparedStatement是Statement的子接口,SQL语句用“?”作为所有动态参数的占位符
PreparedStatement pstmt = con.prepareStatement("UPDATE Friends SET Address = ? WHERE Name = ?");
pstmt.setString(1, "长沙");
pstmt.setString(2, "王五");
- 设置好每个参数值之后,可以使用PreparedStatement对象的无参的executeUpdate()和executeQuery()方法来执行SQL语句:
pstmt.executeUpdate();
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程
2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理
3.其他需要总结的内容。
①
Java应用程序通过JDBC访问数据库时应该遵循五个步骤:
1. 加载(注册)适当的JDBC驱动程序
2. 建立数据库连接(通过DriverManager类的getConnection()方法完成,得到数据库连接对象)
3. .通过数据库连接对象的createStatement方法建立SQL语句对象(Statement,PreparedStatement)执行SQL语句
4. 处理结果集(ResultSet):使用while循环读取结果
5. 关闭数据库连接
(二)实验总结
实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
客户层(Client):现在采用B/S开发架构,一般使用浏览器进行访问。
显示层(JSP/Servlet):使用JSP/Servlet进行页面效果的显示
业务层(BO,Business Object,业务对象):会将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑。
数据层(DAO):提供多个原子性的DAO操作,例如:增加、修改、删除等,都属于原子性的操作。
资源层(DataBase):主要是数据库的操作层,可以进行各种的数据存储。
问题:每个用户购买的宠物不同,不能用数据库同一表。
解决方案:使用集合