《Java技术》第八次作业
(一)学习总结
1.用思维导图对本周的学习内容进行总结。
2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。
使用PreparedStatement接口
使用Statement接口
原因:作为 Statement 的子类,PreparedStatement 继承了 Statement 的所有功能。三种方法
execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数。
虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码效率高。
不同之处:
在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。
Statement 对象用于将 SQL 语句发送到数据库中。实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、PreparedStatement(它从 Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。
PreparedStatement中的SQL语句是可以带参数的,避免了用字符串连接拼接SQL语句的麻烦和不 安全;当批量处理SQL或频繁执行相同的查询时,PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓 存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)。
(二)实验总结
1、使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
格式如下:
- 程序设计思路:
1、先设计一个PetItem类,包含number、name、age、cno、price属性,并写出get、set方法。设计一个Administrator类,包含name、mi属性,并写出get、set方法,编写一个验证方法。
2、设计一个JDBC类,方便AdminDao类往数据库添加数据。
3、设计数据访问AdminDao类,包含获取所有数据,添加数据,删除数据等方法。
4、设计服务AdminService类,包含查询服务,添加服务,修改服务,删除服务等方法,查询服务要调用AdminDao类的queryAllData()方法,获取所有数据。
5、设计WelcomeFrame类,声明一个图片组件和一个按钮组件,设计一个设置窗体的函数,包括窗体大小、窗体位置、标题。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。
6、设计Adminis类,声明一个按钮、两个标签,设计一个设置窗体的函数,包括窗体大小、窗体位置、。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。设计一个修改的方法调用Administrator类的验证方法。
7、设计系统管理界面, AdminDialog类,定义界面使用的组件,使用JTextField组件输入文本,编写构造方法,初始化方法,添加组件,添加监听器,编写查询方法,调用adminService的查询服务,编写添加方法,删除方法,修改方法。
8、编写工具类,方便WelcomeFrame类调用。
9、设计主方法,调用WelcomeFrame().setVisible(true),运行项目。
类图
(三)代码托管
码云commit历史截图
(四)学习进度条
代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容 目标 5000行 300小时 第2-4周 100/100 20/20 学习了数组和方法 第5周 200/300 30/50 学习了String类和StringBuffer类 第6周 800/1100 40/90 学习了this、static关键字,Singleton模式 第八周 1200/1700 60/110 继承和多态,抽象方法 第九周 1500/2000 70/120 接口、工厂设计模式、包装类、匿名内部类、日期类、正则表达式 第十周 1900/2400 80/130 异常处理、泛型、集合 第十一周 2500/3000 100/150 用户图形界面、事件处理 第十二周 3000/3500 110/160 JDBC数据库的链接