20145309李昊第九周学习总结
教材学习内容总结
第十六章 整合数据库
一、JDBC入门
(一)JDBC简介
厂商在操作JDBC驱动程序时,依操作方式可将驱动程序分为4种类型
-
JDBC-ODBC Bridge Driver
- 将JDBC调用转换为对ODBC驱动程序的调用,由ODBC驱动程序操作数据库
- 功能受限,弹性不足
-
Native API Driver
- 以原生方式调用数据库提供的原生链接库,JDBC的方法调用都会转换为原生链接库中的相关API调用
- 速度优势
-
JDBC-Net Driver
- 将JDBC方法调用转换为特定的网络协议调用,远程与数据库特定的中介服务器或组件进行协议操作
- 速度较慢,获得架构弹性
-
Native Protocol Driver
- 将JDBC调用转换为与数据库特定的网络协议,以与数据库进行沟通操作
- 可以跨平台,不需要获得架构弹性时使用
(二)连接数据库
- 注册Driver对象:调用registerDriver()方法
- 取得Connection操作对象:getConnection()
-
关闭Connection操作对象:close()(isClosed()方法可以测试与数据库的连接是否关闭)
(三)使用Statement、ResultSet
- 要执行SQL,必须取得java.sql.Statement操作对象
- 使用createStatement()建立Statement对象
- executeQuery():用于SELECT等查询数据库的SQL,返回java.sql.ResultSet对象
-
executeQuery():返回int结果
(四)使用PreparedStatement、CallableStatement
- 如果有些操作只是SQL语句中某些参数会有不同,其余相同,则可以使用java.sql.PreparedStatement
- 使用preparedStatement()方法建立好预先编译的SQL语句,参数变动部分用“?”
- 使用executeUpdate()和executeQuery()方法让SQL执行生效
-
执行完毕,调用clearParameters()清除设置参数
第17章
运用反射 JAVA真正需要某个类时才会加载对应的.class文档,不是程序启动时就加载所有类。
通过Object的getClass()方法,或者.class常量取得每个对象对应的class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如,Integer.TYPE可取得代表int的Class对象。
使用`class.forName()的方法来实现动态加载类。
java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。
了解类加载器(ClassLoader)
是指将.class文件中的二进制数据读入到内存中,将其放在运行时数据的方法区内,然后再堆区创建这个类的java.lang.Class对象,用来封装类在方法区类的对象。
JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤。
第18章
自定义泛型
在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。
共变性(Covariance):,B是A的子类,Node B可视为一种Node A ,称Node具有共变性。
通配字符“?”与extends限制T的类型,只能通过T声明的名称取得对象指定给Object,或将T声明的名称指定为null。
教材学习中的问题和解决过程
学习过程中只是有一些名词不清楚,查过就好了,就不一一例举了,十七十八章学期初老师划掉了,所以只是看了一遍