20165233 2017-2018-2 《Java程序设计》第七周学习总结
20165233 2017-2018-2 《Java程序设计》第七周学习总结
教材学习内容总结
ch11
- 下载XAMPP
- 基本操作:连接数据库
- 基础:查询操作,更新、添加与删除操作
- 重点:使用预处理语句
- 难点:通用查询、事务
教材学习中的问题和解决过程
- 问题1:为什么要下载驱动?
- 问题1解决方案:由于Java本身的JDBC没有包含这些驱动的库,所以需要另外下载。
- 问题2:Java中JDBC驱动的四种类型是什么?
- 问题2解决方案:一是JDBC-ODBC桥。JDBC-ODBC 桥 是sun公司提供的,是jdk提供的的标准API. 这种类型的驱动实际是把所有 JDBC的调用传递给ODBC ,再由ODBC调用本地数据库驱动代码( 本地数据库驱动代码是指 由数据库厂商提供的数据库操作二进制代码库,例如在oracle for windows中就是oci dll 文 件);二是本地API驱动。本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库;三是网络协议驱动。这种驱动实际上是根据我们熟悉的三层结构建立的. JDBC先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器.如果中间件服务器也是用java开法的,那么在在中间层也可以使用1,2型 JDBC驱动程序作为访问数据库的方法. 网络协议驱动---------中间件服务器------------数据库Server;四是本地协议驱动。这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求.由于4型驱动写的应用可 以直接和数据库服务器通讯.这种类型的驱动完全由java实现,因此实现了平台独立性. 本地协议驱动---------数据库Server。
代码调试中的问题和解决过程
- 问题1:在安装老师要求的
Xampp
时,点击start
连接Mysql Database
时总是失败? - 问题1解决方案:由于根据教材下载了
Mysql
与Xampp
中的数据库起了冲突,所以无法连接,将Mysql
停止并关闭就能使Xampp
正常runningMysql Database
。
- 问题2:在进行连接数据库时,通过
TestJDBC
测试,一直报错,不知道原因是什么?
- 问题2解决方案:目前网络上还没有类似错误出现,暂时没有解决办法。
补:4.16,利用命令行sudo rm -rf /Application/xampp
强制删除之前的xampp,并重新安装一个不设root密码的xampp,通过TestJDBC成功连接数据库。
代码托管
上周考试错题总结
第五周
- 错题1:下列关于自定义异常类的描述,正确的是:C.自定义异常类可以更加明确定位异常出错的位置和给出详细出错信息。
原因:对于自定义异常类中所包含的知识点不清楚,掌握得不好。
理解情况:自定义异常类不一定继承Exception,不能继承自Error。
- 错题2:已知
String s=null;
下列代码会抛出NullPointerException异常的有:
A.if((s!=null)&(s.length()>0))
;C.if((s==null)|(s.length()==0))
原因:对于抛出此异常的情况不清楚。
理解情况:1、调用 null 对象的实例方法。
2、访问或修改 null 对象的字段。
3、如果一个数组为null,试图用属性length获得其长度时。
4、如果一个数组为null,试图访问或修改其中某个元素时。
5、在需要抛出一个异常对象,而该对象为 null 时。在以上五种情况下会抛出此异常。
- 错题3:以下关于File类常用方法的叙述,错误的是:B.
public int hashCode()
:计算此文件的哈希码。
原因:对于File类常用方法掌握不全面。
理解情况:此常用方法是用于计算此抽象路径名的哈希码的。
- 错题4:如果超出JVM运行能力之外,如
byte[] arr=new byte[1024*1024*600];
会抛出java.lang.OutOfMemoryError异常。false
原因:对于Error类与Exception类对于出现问题的描述情况掌握不好。
理解情况:对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的。
第六周
- 错题1:使用构造方法
String(byte[] bytes,int offset,int length,Charset charset)
,通过使用指定的charset解码指定的byte子数组,构造一个新的String。其中,offset参数是子数组第一个字符的索引,count参数指定子数组的长度。true
原因:对于charset解码掌握不好。
理解情况:记忆此知识点。
- 错题2:下列说法正确的是:D.
new Date(System.currentTimeMillis())
等价于new Date()。
原因:对于Date类的理解不透彻。
理解情况:根据教材情况,已差不多掌握。
其他(感悟、思考等,可选)
本周学习内容中11章的内容,重在运用,但是Mac在安装XAMPP后,连接数据库时遇到很多问题,直到现在还没有解决,现在猜测问题是:我的Java版本是10,mysql connector版本与Java新版不匹配。