20155318 2016-2017-2 《Java程序设计》第九学习总结
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
- BLOB用于存储大量的二进制数据,像是图档、影音档等。
交易的四个基本要求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的博客和自己的博客做对比,找出不足
- 上周博客互评情况
其他(感悟、思考等,可选)
对于Java的学习越来越套路,感觉自己有了懈怠的情绪,这让我想起去年学习C语言的时候也是如此,到最后的时候觉得学的难了,就开始懈怠。这周主要是学习了实验的内容,对于课本的知识就没有进行全面的掌握,接下来的学习目标以实践为主,自己要好好把握。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/100 | 1/1 | 24/24 | 安装学习Java的一系列软件 |
第二周 | 250/300 | 1/2 | 30/54 | 了解Java的基本语法 |
第三周 | 552/852 | 1/3 | 16/60 | 了解Java是面向对象的语言 |
第四周 | 717/1569 | 1/4 | 10/70 | 了解Java继承与接口 |
第五周 | 495/2064 | 1/5 | 6/76 | 了解异常处理,学会使用Collection收集对象 |
第六周 | 754/2818 | 1/6 | 6/82 | 了解串流和线程 |
第七周 | 679/3493 | 2/8 | 5/87 | 了解时间与日期,掌握Date和Calendar的一些用法 |
第八周 | 352/3845 | 1/9 | 8/95 | 了解并会使用通用API |
第九周 | 1203/5048 | 2/11 | 5/100 | 了解通用JDBC等相关知识,完成第二次实验 |
计划学习时间:6小时
实际学习时间:5小时
参考资料
20155318 2016-2017-2 《Java程序设计》第九学习总结的更多相关文章
- 20165304 2017-2018-2《Java程序设计》学习总结
20165304 2017-2018-2<Java程序设计>学习总结 一.每周作业及实验报告链接汇总 1.我期望的师生关系 2.20165304学习基础和C语言基础调查 3.linux系统 ...
- 201671010127 2016—2017—2 Java学习周结
时间真是个最公平东西,只要能够好好地利用它,它可以为我们带来我们我们所想要的东西.学习Java已经有一周了,对于Java基础知识的认识也更进一步,对Java的兴趣也愈来愈浓.实现一个Java程序,主要 ...
- 201521123027 <java程序设计>第九周学习总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...
- 20165203 第6周《Java程序设计》学习
教材学习内容总结 第八章 String类 分清常量池和变量池. String类的常用方法 public int length() public boolean eauals(String s) pub ...
- 201671010142 <java程序设计>初次学习心得与感悟
从开始对JDK的配置就遇到了问题,从这点就可以知道自己知识的薄弱.又知道了在控制台下一些常用命令的掌握.对知识的理解挺艰难,比如遇到一个新的问题就不知道该从哪里入手,有时候还不知道到底问题是啥.接受能 ...
- 201671010127 2016—2017—2 Java怎样解决Java程序中中文乱码的问题。
这是本次第二次分享新手在编程中遇到的问题,相信很多Java新手和我一样,在Java编程中会遇到中文乱码的情况,下面我就给大家分享我遇到问题和解决问题的具体过程. 我先用Notepad++写了一个如下的 ...
- 20145127 《Java程序设计》第一周学习总结
通过第一周的Java程序设计的学习,听了娄老师的第一堂课,虽然课堂上老师并没有一开始就讲许多专业的知识,而是带领着我们对于Java这门语言,并不仅仅是一门语言,经行了初步的认识与了解,并且对于Java ...
- 20145233《Java程序设计》课程总结
20145233 <Java程序设计>学习总结 每周学习博客汇总 20145233韩昊辰 第一周总结 20145233韩昊辰 第二周总结 20145233韩昊辰 第三周总结 2014523 ...
- 20165206 2017-2018-2《Java程序设计》课程总结
20165206 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 预备作业1:对师生关系的看法和期望 预备作业2:c语言基础和学习技能的理解 预备作业3:Linu ...
- 2016-2017-2 《Java 程序设计》课堂实践项目
目录 基本工具 基础内容 Hello World 和 模块分解 数组的使用 命令行参数 递归 分支语句 String类的使用 类的定义与测试 多态 IO与异常 数据库 网络与安全 数据结构应用 And ...
随机推荐
- logstash使用分享
1.logstash时间处理函数 当业务场景需要自有的time字段覆盖@timestamp字段的情况下 需要使用 date { match => ["time", " ...
- Oracle本地网络服务名配置
1.安装Oracle 11G Client后可以在开始菜单中找到 选择NETCA->本地网络服务名配置 选择添加本地网服务名配置 这里的服务名:指的是也就是数据库名 在网络中架设C/S 客户端选 ...
- Makefile中进行宏定义-***
实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解 ...
- 智能家居入门DIY——【五、执行命令】
前面几篇介绍了ESP8266使用AT命令来连接WIFI实现一系列功能.这一篇介绍一下使用Wemos D1 Wifi来进行开发,当然也可以用常见的8针ESP8266来完成(只是需要按网上的方法将Ardu ...
- Java-Web 用html和css写一个EasyMall注册界面
要求: html代码: <!DOCTYPE html> <html> <head> <title>EasyMall注册页面</title> ...
- ROS+nfdump 用户上网日志
ROS 本身提供了 Traffic Flow 功能,与 Scisco的 Netflow 功能类似.只要开启 Traffic Flow 传到日志服务器即可, 这种设置系统开销很小,可以传到本地网络,也可 ...
- 三大运营商2G/3G/4G频率分配和网络制式
经过二十多年长期的发展,我国的通信业逐渐形成了2G/3G/4G并存的局面,手机通讯信号传输都是通过一定频率传输的,而三大运营商所拥有的频率和网络制式不尽相同,这就造成同一部手机在三大运营商之间可能不通 ...
- C++快速输出一个整数的二进制表示(不用写函数)
如果要输出int型的整数x,代码为: cout << bitset<>(x) << endl; 如果要输出long long型的整数x,代码为: cout < ...
- 管理Linux服务器的用户和组
管理Linux服务器的用户和组 Linux操作系统是一个多用户多任务的操作系统,允许多个用户同时登录到系统,使用系统资源. 为了使所有用户的工作顺利进行,保护每个用户的文件和进程,规范每个用户的权限, ...
- [saiku] 简介、下载、安装和教程
一.简介 Saiku成立于2008年,由Tom Barber和Paul Stoellberger研发. 最初叫做Pentaho分析工具,起初是基于OLAP4J库用GWT包装的一个前端分析工具. 经过多 ...