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 |