您的位置:首页 > 编程语言 > Java开发

20155225 2016-2017-2 《Java程序设计》第九周学习总结

2017-04-23 18:57 344 查看

20155225 2016-2017-2 《Java程序设计》第九周学习总结

教材学习内容总结

JDBC入门

了解JDBC架构

使用JDBC API

JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性。

厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型:

Type 1:JDBC-ODBC Bridge Driver

Type 2:Native API Driver

Type 3:JDbc-Net Driver

Type 4:Native Protocol Driver

取得联机等与数据库来源相关的行为规范在javax.sql.DataSource接口,实际如何取得Connection则由操作接口的对象来负责。

Connection是数据库连接的代表对象,接下来要执行SQL的话,必须取得java.sql.Statement对象,它是SQL描述的代表对象。可以使用Connection的createStatement()来建立Statement对象。

package cc.openhome;

import static java.lang.System.out;
import java.sql.*;

public class ConnectionDemo {
public static void main(String[] args)
throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
String jdbcUrl = "jdbc:mysql://localhost:3306/demo";
String user = "root";
String passwd = "openhome";
try(Connection conn =
DriverManager.getConnection(jdbcUrl, user, passwd)) {
out.printf("已%s数据库联机%n",
conn.isClosed() ? "关闭" : "开启");
}
}
}

在使用Connection、Statement或ResultSet时,要将之关闭以释放相关资源。

如果有些操作只是SQL语句当中某些参数会有所不同,其余的SQL子句皆相同,则可以使用java.sql.PreparedStatement.可以使用Connection的preparedStatement()方法建立好一个预先编译的SQL语句,当中参数会变动的部分,先指定“?”这个占位字符。等到需要真正指定参数执行时,再使用相对应的setInt()、setString()等方法,指定“?”处真正应该有的参数。

教材学习中的问题和解决过程

问题1:JDBC是什么?

解决方案:通过看书,我的理解是应用程序和数据库沟通,需要调用链接库简化程序撰写。JDBC的目的是程序设计员在撰写数据库操作程序的时候,可以有个统一的接口,无需依赖特定的数据库API。

问题2:注册Driver操作对象是什么意思?

解决方案:通过看书,知道操作Driver接口的对象是JDBC进行数据库存取的起点必须调用静态方法registerDriver()进行注册。

代码调试中的问题和解决过程

问题1:编译提示找不到Message符号



解决方案:没有安装驱动JAR的原因。

代码托管



上周考试错题总结

错题1:

ByteBuffer 调用了flip()之后,position的值一定是0。

A .True

B .False

原因及理解情况:查询API文档

错题2:

abc? 匹配( )

A .ab

B .abc

C .abcc

D .abccc

原因及理解情况:?代表重复0次或1次

错题3:

正则表达式 r.t 能够匹配字符串()

A .rat

B .rt

C .rut

D .root

原因及理解情况:r.t 表示 r开着,中间为任意字符接着为t的三字母字符串

结对及互评

评分标准

正确使用Markdown语法(加1分):

不使用Markdown不加分

有语法错误的不加分(链接打不开,表格不对,列表不正确...)

排版混乱的不加分

模板中的要素齐全(加1分)

缺少“教材学习中的问题和解决过程”的不加分

缺少“代码调试中的问题和解决过程”的不加分

代码托管不能打开的不加分

缺少“结对及互评”的不能打开的不加分

缺少“上周考试错题总结”的不能加分

缺少“进度条”的不能加分

缺少“参考资料”的不能加分

教材学习中的问题和解决过程, 一个问题加1分

代码调试中的问题和解决过程, 一个问题加1分

本周有效代码超过300分行的(加2分)

一周提交次数少于20次的不加分

其他加分:

周五前发博客的加1分

感想,体会不假大空的加1分

排版精美的加一分

进度条中记录学习时间与改进情况的加1分

有动手写新代码的加1分

课后选择题有验证的加1分

代码Commit Message规范的加1分

错题学习深入的加1分

点评认真,能指出博客和代码中的问题的加1分

结对学习情况真实可信的加1分

扣分:

有抄袭的扣至0分

代码作弊的扣至0分

迟交作业的扣至0分

点评模板:

博客中值得学习的或问题:

xxx

xxx

...

代码中值得学习的或问题:

xxx

xxx

...

基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

参考示例

点评过的同学博客和代码

本周结对学习情况

20155229



结对学习内容

学习第十五章的内容

互相请教遇到的问题

解决部分上周考试的错题

上周博客互评情况

20155235

20155326

20145325

20155210

20145209

其他(感悟、思考等,可选)

由于每周进度太快,基础内容不扎实,越到后面越看不懂了。我连数据库是什么都还不知道,在学用java操作数据库之前,我需要先补补数据库的知识。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周10/101/720/20
第二周120/1301/88/38
第三周543/6731/925/60
第四周529/10721/1025/90
第五周609/16811/1120/110
第六周428/21091/1215/125
第七周219/23281/1315/140
第八周183/25111/1410/150
第九周360/28712/1610/150
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

计划学习时间:15小时

实际学习时间:10小时

改进情况:因为越到后面越看不懂,所以学习效率降低

参考资料

Java学习笔记(第8版)

《Java学习笔记(第8版)》学习指导
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: