# 学号12 2016-2017-2 《程序设计与数据结构》第9周学习总结
教材学习内容总结
关键概念摘要
- 数据库是为其他程序提供数据的应用软件
- 关系数据库通过唯一的标识符在不同表的记录间建立联系
- JDBC API用来建立到数据库的链接
- CREATE TABLE SQL语句用来创建新的数据库表
- ALTER TABLE SQL语句用来修改已有的数据库表
- SHOW COLUMNS SQL语句用来获取表的各列和结构设置
- INSERT SQL语句用来向数据库表中添加新数据
- SELECT SQL语句用来得到数据库表中的数据
- 通过修改ResultSet可更新数据库
- DELETE FROM SQL语句用来删除数据库表中的数据
- DROP TABLE SQL语句用来删除整个数据库表
数据库介绍
- 数据库是可能保存大量数据的仓库,为能快速地储存、查询数据之目的并以多种方式来组织。
- 数据库管理系统是一个软件,他能提供对数据库中所保存数据的快速访问和查询功能。对数据一般有4类操作:创建、读取、更新和删除。
- 我们主要学习的是关系型数据库,它将基本信息组织为一张或多张表。不同数据元素之间的关系可能也保存在表中。
建立与数据库链接
- 需要用驱动程序(driver)来建立与数据库之间的通信,并将数据库请求传给数据库应用程序。
- 通过CLASSPATH环境变量指明它的位置(在编译和运行期间)
创建并修改数据库表
- 创建数据库表的SQL语句是:CREATE TABLE
- 修改数据库表的SQL语句是:ALTER TABLE
查询数据库
- SHOW COLUMNS SQL语句用来获取表的各列和结构设置。
插入、查看及更新数据
- 插入数据:创建新的Statement,并使用INSERT
- 查看数据:SELECT...FROM SQL语句能让用户拘于一些准则,构造对数据的请求。
- 更新数据:首先,获得一个ResultSet,并浏览到要更新的行。其次,更新ResultSet中要修改的值。最后,使用ResultSet的记录来更新数据库。
删除数据和数据库表
- 用DELETE FROM语句来删除数据,语法为DELETE FROM 。
- 使用Statement对象的executeUpdate方法,并传给它DROP TABLE ,tablename> SQL语句,即可删除数据库表。
教材学习中的问题和解决过程
-
问题1:对执行SQL语句的具体方法不是很理解。
-
问题1解决方案:查询了博客园中的有关博客,加深了对这块知识的理解。
-
问题2: 对表的数据删除及修改如何深入理解。
-
问题2解决方案:在网上找到了对应的教程,结合课本后感觉理解更加容易。
代码调试中的问题和解决过程
-
问题1:没有理解什么是递归,原本以为是手动输入 1 2 3 4 5 然后求和
-
问题1解决方案:看了春旺做的后才知道,递归是输入一个数如5 然后求1 + 2 + 3 + 4 + 5的值,了解后对for循环进行了修改
[代码托管](https://git.oschina.net/pdds2017/zjc20162312_JavaFoundation2nd)
上周考试错题总结
- test.txt 中的内容是:
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98
把第四列提取出来的Linux命令是:
A .
cut -f 1 test.txt
B .
cut -f 2 test.txt
C .
cut -f 3 test.txt
D .
cut -f 4 test.txt
选D cut 命令中第n列不是从0开始计数的。
- A(n) ____________________ can be used to find the exact line where an exception was thrown during program execution(_____调用栈跟踪用于找出程序执行时异常发生的位置).
A .
interface(接口)
B .
call-stack trace(调用栈跟踪)
C .
try block(try块)
D .
catch block(catch块)
E .
none of the above(以上均不是)
选B 调用堆栈指示抛出异常的确切行
- Which of the following represents the standard input stream(下面哪项表示标注输入流)?
A .
System.in
B .
System.out
C .
System.err
D .
System.instream
E .
System.outstream
选A 标准输入流为代表的系统。
- Which of the following file streams should be explicitly closed to ensure that written data is properly retained(下面哪个文件输入流应该显式关闭,以确保数据能正确保存下来)?
A .
output
B .
input
C .
error
D .
writable
E .
readable
选A 输出文件流应该使用关闭方法显式关闭,以便所有数据被正确保留。
- Which of the following exceptions are unchecked?
A .
RuntimeException
B .
IllegalAccessException
C .
NoSuchMethodException
D .
ClassNotFoundException
E .
none of the above(以上均不是)
选A 所有的子类RuntimeException类是选中的。
int number = Integer.parseInt(args[0]);
结对及互评
这个周的学习中春旺同学对我帮助依旧很大,比如我对方法构造不是很理解,看完视频后依旧有很多不懂的地方除了在网上查资料也有很多是在他的帮助下解决的。
点评过的同学博客和代码
其他(感悟、思考等,可选)
这个周学习的重心感觉转移到课堂上多了一些,在课堂上的实验中和同学讨论完成,学到了许多知识。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 74/74 | 1/1 | 20/20 | |
第二周 | 329/403 | 1/2 | 14/34 | |
第三周 | 269/672 | 1/3 | 16/50 | |
第四周 | 989/1661 | 2/5 | 24/74 | |
第五周 | 623/2284 | 1/6 | 12/86 | |
第六周 | 406/2690 | 1/7 | 10/96 | |
第七周 | 785 /3475 | 2/9 | 10/106 | |
第八周 | 337/3812 | 1/10 | 8/114 | |
第九周 | 260/4072 | 1/10 | 8/122 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:10小时
-
实际学习时间:8小时
-
改进情况:改进方法后时间短了很多。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)