# 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 |