20145320《Java程序设计》第9周学习总结
20145320《Java程序设计》第9周学习总结
教材学习内容总结
16.整合数据库
JDBC(java DateBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性。
厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型:
- Type1:JDBC-ODBC Bridge Driver
- Type1:Native API Driver
- Type1:JDBC-Net Driver
- Type1:Native Protocol Driver
数据库操作相关的JDBC接口或类都位于java.sql 包中。要连接数据库,可以向DriverManager取得Connetion对象。Connection是数据库联机的代表对象,一个Connection对象就代表一个数据库联机。SQLExcrption是在处理JDBC时经常遇到的一个异常对象,为数据库操作过程发生错误时的代表对象。
取得联机等与数据库来源相关的行为规范在javax.sql.DataSource接口,实际如何取得Connection则由操作接口的对象来负责。
Connection时数据库连接的代表对象,接下来要执行SQL的话,必须取得javax.sql.Statement对象。它是SQL描述的代表对象。可以使用Connection的createStatement()来建立Statement()对象
Statement的executeQuery()方法则是用于SELECT等查询数据库的SQL,executeUpdate()会返回int结果,表示数据变动的笔数,executeQuery()会返回java.sql.ResultSet对象,代表查询的结果,查询的结果会是一笔一笔的数据。可以使用ResultSet的next()来移动至下一笔数据,它会返回true或是false表示是否有下一笔数据,接着可以使用getxxxx()来取得数据
在使用Connection、Statement、ResultSet时,要将之关闭以释放相关资源。
如果有些操作只是SQL语句当中某些参数会有所不同,其余的SQL子句皆相同,则可以使用java.sql.PrepareStatement。可以使用Connection的prepareStatement()方法建立好一个预先编译的SQL语句,当中参数会变动的部分,先指定“?”这个占位字符。等到需要真正指定参数执行时,在使用相对应的setInt()、setString()等方法,指定“?”处真正该有的参数。
教材学习中的问题和解决过程
关于书上514页的MessageDAODemo.java得到的结果如下

假如我们没有事先Connection连接数据库,就会抛出java.sql.SQLException和No suitable driver found for jdbc

其他(感悟、思考等,可选)
虽说这周看似要自学三章,其实我就学了一章,java的核心知识与难点之前都已经学完了,后面的章节全都是介绍一些类的应用。我知道第16章、第17章和第18章跟之前一样,还是介绍一些类的应用,于是我采取和之前一样的办法,一边看书,一边总结,看书上总共介绍了多少种API,每一种API的架构是什么,每一种API的作用与注意事项是什么。就这样有系统的去学习,感觉效率十分高!不过我感觉后面的并没有前面那么有用,毕竟前面的是重点。java是一门很好的语言,如果不搞这么多奇怪的东西就好了
学习进度条
代码托管截图

| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 1/1 | 20/20 | |
| 第二周 | 300/500 | 1/2 | 18/38 | |
| 第三周 | 500/1000 | 1/3 | 22/60 | |
| 第四周 | 500/1500 | 1/4 | 30/90 | |
| 第五周 | 400/1900 | 1/5 | 20/110 | |
| 第六周 | 400/2300 | 2/7 | 20/130 | |
| 第七周 | 300/2600 | 2/9 | 15/145 | |
| 第八周 | 284/2884 | 2/11 | 20/165 | |
| 第九周 | 923/3807 | 2/13 | 20/185 |

浙公网安备 33010602011771号