20155334 2016-2017-2 《Java程序设计》第九周学习总结
教材学习内容总结
第十六章:整合数据库
16.1 JDBC入门
- JDBC(Java DataBase Connectivity)即Java数据库连接,是一种执行SQL语句的Java API
- JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
- 对于JDBC,其使用有两个步骤:
进行驱动程序的装载-->连接的建立
- 基本数据库操作相关JDBC接口或类是为位于java.sql包中。
- Connection接口的操作对象是数据库联机代表对象。
- 建立数据库的步骤:
注册Driver的操作对象-->取得Connection操作对象-->关闭connection操作对象
- Statement是SQL描述的代表对象,可以使用
executeUpdate()
executeQuery()
等方法来执行SQL。 - Statement的executeUpdate()方法用于SELECT等查询数据库的SQL,返回int结果,表示数据变动的笔数。
- Statement的executeQuery()方法返回java.sql.ResultSet对象,代表查询结果。
- Statement的execute()方法用来执行SQL,返回true表示SQL执行将返回。
- 如果撰写数据库的预存程序,并想要使用JDBC来调用,则可使用java.sql.CallableStatement。必须调用prepareCall()建立CallableStatement异常,可以使用registerOutParameter()注册输出参数。
16.2 JDBC进阶
- 让MessageDAO依赖于java.sql.DataSource接口,可以通过其定义的
getConnection()
方法取得Connection。 - 日后要修改数据库服务器主机位置,为了打算重复利用Connection对象而想要加入联机池机制等情况,这个MessageDAO都不用修改。
- 联机相关信息可以使用.properties设定。
- 建立Statement或PreparedStatement实例时,可以指定结果集类型与并行方式。
- 批次更新的限制是,SQL不能使SELECT,否则会抛出异常。
- 可以把BLOB字段对应byte[]或输入\输出串流。
- 在交易管理时,仅想要撤回某个SQL执行点,则可以设定存储点。
- Metadata即“诠读数据的数据”,可以通过connection的getMetaData()方法取得DatabaseMetaData对象,可以取得数据库整体信息,而ResultSet表示查询到的数据,可以通过ResultSet的getMetaData()方法,取得ResultSetMetaData对象。
- javax.sql.RowSet接口,代表数据的列集合。可以对列集合进行增删改查。通过setCommand()设定查询指令,通过execute()执行查询指令以填充数据。
第十七章:反射与类加载器
17.1运用反射
-
JAVA真正需要某个类时才会加载对应的
.class
文档,不是程序启动时就加载所有类 -
java.lang.reflect.Method
实例是方法的代表对象,可以使用invoke()
方法来动态调用指定的方法。
17.2了解类加载器
-
JVM将类加载过程分为三个步骤:装载,链接和初始化链接又分为三个步骤。
-
类的加载:是指将类的
.class
文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个这个类的Java.lang.Class
对象,用来封装类在方法区类的对象。
第十八章:自定义泛类、枚举与注释
18.1自定义泛型
- 共变性或有弹性的:B是A的子类,
Node<B>
可视为一种Node<A>
,称Node具有共变性或有弹性的。 - 一旦使用通配字符?与
extends
限制T
的类型,就只能通过T
的名称取得对象指定给Object,或将T
声明的名称指定为null
。除此之外,不能进行其他指定动作。
18.2自定义枚举
-
enum
定义了特殊的类,继承自java.lang.Enum
enum
是个抽象类,无法直接实例化。 -
enum
操作Comparable
接口,ordinal的值是会使用enum
枚举的成员顺序。equals()
与hashCode()
基本上继承了Object的行为,但被标示为final。 -
可以使用
values()
的方法,将内部维护Action枚举实例的数组复制后返回。
18.3关于注释
- Java提供了一些标准注释,前面经常看到的@Override就是标准注释。
教材学习中的问题和解决过程
- 问题1:建立Statement或PreparedStatement实例时,可以指定结果集类型与并行方式。
- 问题2:Connection接口的操作对象是数据库联机代表对象。