# 20145334 《Java程序设计》第9周学习总结

20145334 《Java程序设计》第9周学习总结

教材学习内容总结

第十六章 整合数据库
JDBC

1.Java语言访问数据库的一种规范,是一套API。

2.JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。

比如建立数据库连接、执行SQL语句进行数据的存取操作。

3.注册Driver操作:与数据库建立连接的标准方法是调用DriverManager.getConnection方法。

4.该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。

5.DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。

6.Driver的方法connect使用这个URL来建立实际的连接。

7.取得Connection操作对象:要取得操作对象可以通过DriverManager的getConnection()。

8.关闭Connection操作对象:使用 close() 来关闭与数据库的连接,或可以使用尝试自动关闭资源语法来简化程序撰写。

Statement
1.Statement的executeQuery()方法则是用于SELECT等查询数据库的SQL,executeUpdate()会返回int结果,表示数据变动的笔数,executeQuery()会返回java.sql.ResultSet对象,代表查询的结果,查询的结果会是一笔一笔的数据。

2.可以使用ResultSet的next()来移动至下一笔数据,它会返回 true 或 false表示是否有下一笔数据,接着可以使用getXXX()来取得数据。如果有些操作只是SQL语句中某些参数会有所不同,其余的SQL子句皆相同,则可以使用java.sql.PreparedStatement。

3.可以使用Connection的preparedStatement()方法创建好一个预编译(precompile)的SQL命令,其中参数会变动的部分,先指定“?”这个占位字符。

4.需要真正指定参数执行时,再使用相对应的setInt()、setString()等方法,指定“?”处真正应该有的参数。

反射与类加载器

1.Java真正需要某个类时才会加载对应的.class文档,而非在程序启动就加载所有类。

2.java.lang.Class的实例代表Java应用程序运行时加载的.class文档。

3.可以通过Object的getClass()方法,或者通过.class常量取得每个对象对应的Class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。

4.例如:Integer.TYPE可取得代表int的Class对象。

5.如果事先不知道类名称,可以利用Class.forName()动态加载.class文档,取得Class对象之后,利用其newInstance()方法建立类实例。

6.java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。

自定义泛型

1.在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。

2.共变性(Covariance):B是A的子类Node可视为一种Node,称Node具有共变性。

3.通配字符“?”与extends限制T的类型,只能通过T声明的名称取得对象指定给Object,或将T声明的名称指定为null。

自定义枚举

1.enum定义了特殊的类,继承自java.lang.Enum。

2.enum是个抽象类,无法直接实例化。

3.enum操作Comparable接口,ordinal的值是会使用enum枚举的成员顺序。equals()与hashCode()基本上继承了Object的行为,但被标示为final。

4.可以使用values()的方法,将内部维护Action枚举实例的数组复制后返回。

本周代码托管截图

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

学习的重点在于MySQL的学习,通过在网上搜集资料慢慢对XAMPP有所了解,并且建立起了一个简单的数据库。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第六周 400/600 2/2 20/20
第七周 450/700 2/4 18/38
第八周 500/800 3/7 22/60
第九周 550/900 2/9 30/90

参考资料

posted @ 2016-05-01 20:51  20145334赵文豪  阅读(103)  评论(0编辑  收藏  举报