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

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

2017-04-22 13:59 323 查看

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

教材学习内容总结

学习目标

了解JDBC架构

掌握JDBC架构

掌握反射与ClassLoader

了解自定义泛型和自定义枚举

会使用标准注解

JDBC

一种用于执行SQR语句的Java API,一次编译,到处运行。

两种接口:1.应用程序开发者接口;2.驱动程序开发者接口。



Driver接口:起点

Connection接口:数据库联机代表对象

在操作完数据库之,必须使用close()关闭数据库。

使用Connection的createStatement()建立Statement对象。

Statement的execute()用来执行SQL,并可以测试SQL是执行查询或更新,返回true表示SQL执行将返回ResultSet作为查询结果。

使用DataSource取得联机;使用ResultSet卷动、更新数据

结果集类型3种设定:

ResultSet.TYPE_FORWARD_ONLY
(默认)(只能前进数据光标)

ResultSet.TYPE_SCROLL_INSENSITIVE
(前后移动数据光标)

ResultSet.TYPE_SCROLL_SENSITIVE
(前后移动数据光标,反映数据库中的数据修改)

更新设定的2种设定:

ResultSet.CONCUR_READ_ONLY
(默认)(进行数据读取)

ResultSet.CONCUR_UPDATABLE
(进行数据读取、更新)

数据光标移动的API:

绝对位置移动:absolute()、afterLast()、beforeFirst()、first()、last()。

相对位置移动:relative()、previous()、next()。

判断目前位置:isAfterLast()、isBeforeFirst()、isFirst()、isLast()。

数据修改的条件限制:必须选取单一表格;必须选取主键;必须选取所有的NOT FULL的值.

数据更新:调用updatexxx()方法,然后调用updateRow()方法。取消更新:调用cancelRowUpdates()。

新增数据:先调用moveToInsertRow(),之后调用updatexxx()设定要新增的数据各个字段,然后调用insertRow()新增数据。

删除数据列:调用deleteRow()

每次执行excuteUpdate(),都会向数据库发送一次SQL。批次更新时可以使用addBatch()方法来收集SQL,并使用executeBatch()方法将所收集的SQL传送出去。

用BLOB或CLOB数据类型:将文档写入数据库

BLOB用于存储大量的二进制数据,像是图档、影音档等。
java.sql.Blob


CLOB用于存储大量的文字数据。
java.sql.Clob


交易的四个基本要求ACID:原子性、一致性、隔离行为、持续性。

Connection的getMetaD()方法:取得DatabaseMetadata对象,通过这个对象提供的各种方法可以取得数据库整体信息。

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

问题1:在开始运行书上代码的时候,不能运行

解决方案:需要安装MySQL JDBC



下载完成之后解压,将mysql-connector-java-5.1.38-bin.jar放到JDK中lib目录下

之后的步骤可以参考学长的博客中的安装过程

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

本周代码暂未遇到什么问题

代码托管

代码行数统计



上周考试错题总结

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

A .True

B .False

正确答案: A 你的答案: B

错题2:Java NIO中与InputStream/OutputStream相对应的接口是(),用来连接数据节点。

A .Channel

B .Buffer

C .Path

D .FileStore

正确答案: A 你的答案: D

错题3:正则表达式”(‘|”)(.*?)\1”匹配 “'Hello',"World””的结果是()

A .不匹配

B .'Hello'

C ."World"

D .'Hello',"World"

正确答案: B C 你的答案: D

解析:反向引用 \1 代表第一个()中的匹配内容

错题4:abc? 匹配( )

A .ab

B .abc

C .abcc

D .abccc

正确答案: A B 你的答案: C

错题5:正则表达式 zo* 匹配()

A .z

B .zo

C .zoo

D .zooooooooooooooooooooooooooo

正确答案: A B C D 你的答案: A C

错题6:正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是()

A ."rat".matcher("r.t")

B ."r.t".matcher("rat")

C .Pattern.compile("rat").matcher("r.t")

D .Pattern.compile("r.t").matcher("rat")

正确答案: D 你的答案: B

错题7:哪个类代表可重用的正则表达式?

A .Pattern

B .Matcher

C .Glob

D .Regex

正确答案: A 你的答案: C

错题8:It is possible to send in data to a Java program via the command-line.(可以在命令行中给Java程序发送数据)

A .True

B .False

正确答案: A 你的答案: B

错题9:Which of the following array declarations are invalid? (下面哪个数组声明是不合法的)

A .int[] grades = new int[5];

B .int grades[] = new int[5];

C .int[] grades = { 91, 83, 42, 100, 77 };

D .all of the above are valid(以上三个都合法)

E .none of the above are valid(以上三个都不合法)

正确答案: D 你的答案: B

错题10:Which of the statements is true about the following code snippet?(对于下面的代码段,说法正确的是?)

```

int[] array = new int[25];

array[25] = 2;

```

A .The integer value 2 will be assigned to the last index in the array.(整数2会赋给数组中最后一个元素)

B .The integer value 25 will be assigned to the second index in the array.(整数25会赋给数组中的第2个索引)

C .The integer value 25 will be assigned to the third value in the array. (整数25会赋给数组中的第3个元素)

D .This code will result in a compile-time error.(代码会产生编译时错误)

E .This code will result in a run-time error. (代码会产生运行时错误)

错题11:In Java, array indexes always begin at ________________ .(Java中,数组索引从______开始)

A .-1

B .0

C .1

D .2

E .you can declare an array to have any indexes you choose(可以任意指定)

正确答案: B 你的答案: A

结对及互评

点评过的同学博客和代码

本周结对学习情况

20145226

结对照片

001

结对学习内容

学习partner的代码并作出点评

学习partner的博客和自己的博客做对比,找出不足

上周博客互评情况

20155327

20155329

20155316

20155330

20155304

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

对于Java的学习越来越套路,感觉自己有了懈怠的情绪,这让我想起去年学习C语言的时候也是如此,到最后的时候觉得学的难了,就开始懈怠。这周主要是学习了实验的内容,对于课本的知识就没有进行全面的掌握,接下来的学习目标以实践为主,自己要好好把握。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周50/1001/124/24安装学习Java的一系列软件
第二周250/3001/230/54了解Java的基本语法
第三周552/8521/316/60了解Java是面向对象的语言
第四周717/15691/410/70了解Java继承与接口
第五周495/20641/56/76了解异常处理,学会使用Collection收集对象
第六周754/28181/66/82了解串流和线程
第七周679/34932/85/87了解时间与日期,掌握Date和Calendar的一些用法
第八周352/38451/98/95了解并会使用通用API
第九周1203/50482/115/100了解通用JDBC等相关知识,完成第二次实验
计划学习时间:6小时

实际学习时间:5小时

参考资料

Java学习笔记(第8版)

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