20145211 《Java程序设计》第九周学习总结——垂死病中惊坐起
教材学习内容总结
JDBC简介
- JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性
- JDBC标准分为两个部分:JDBC应用程序开发者接口、JDBC驱动程序开发者接口
- 厂商在操作JDBC驱动程序时,依照操作方式可以将驱动程序分成四类
- Tpye 1:JDBC-ODBC Bridge Driver 驱动程序将JDBC调用转换为对ODBC驱动程序的调用,由ODBC驱动程序操作数据库
- Tpye 2:Native API Driver 驱动程序会以原生方式调用数据库提供的原生链接库
- Tpye 3:JDBC-Net Driver 驱动程序会将JDBC方法调用转换成特定的网络协议调用
- Tpye 4:Native Protocol Driver 驱动程序将JDBC调用转换成数据库特定的网络协议与数据库进行沟通操作
- Statement、ResultSet: Conection是数据库连接的代表对象,接下来必须取得java.sql.Statement操作对象 调用clearstatement清除设置的参数,之后就能再次使用这个PreparedStatement实例
JDBC进阶
- 使用DataSource取得联机:messageDAO依赖于 javax.sql.DataSource接口,可以通过定义的getConnection()方法取得Connection
- 使用ResultSet卷动、更新数据:ResultSet不仅可以使用previous() first()、last()等方法前后移动数据,还可以调用updateXXX()、updateRow()
- 批次更新:仅仅用在更新操作,且批次更新的限制是SQL不能是SELECT
- 交易:四个基本要求(ACID) 原子性(Atomicity) 一致性(Consisitency) 隔离行为(Isolathion) 持续性(Durability)
运用反射
Java真正需要某个类时才会加载对应的.class文档,而非在程序启动就加载所有类。java.lang.Class的实例代表Java应用程序运行时加载的.class文档。可以通过Object的getClass()方法,或者通过.class常量取得每个对象对应的Class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如:Integer.TYPE可取得代表int的Class对象。如果事先不知道类名称,可以利用Class.forName()动态加载.class文档,取得Class对象之后,利用其newInstance()方法建立类实例。java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。
注释
注释类型
在原始码中使用注释,对编译程序提供额外编译提示,或提供应用程序执行时期可读取的组态信息。注释可以仅用于原始码,编译后留在.class文档仅供编译程序读取或开放执行时期读取。
常用标准注释
@Override //就是标准注释,被注释的方法必须是父类或接口中已定义的方法,请编译程序协助是否真的为重新定义方法。 @Deprecated //如果某个方法原先存在与API中,后来不建议再使用,可以在该方法上注释。若有用户后续想调用或重新定义这个方法,编译程序会提出警告。对于支持泛型的API,建议明确指定泛型真正类型,如果没有指定,编译程序会提出警告。 @SuppressWarnings //指定抑制unchecked的警告产生: @SuppressWarnings(value={"unchecked"}) @SafeVarargs //表明开发人员确定避免了heap pollution问题。heap pollution问题就是编译程序无法检查执行时期的类型错误,无法具体确认自变量类型。 @FunctionalInterface //让编译程序可协助检查interface是否可做为lambda的目标类型 自定义注释类型 ·标示注释:就是注释名称本身就是信息,对编译程序或应用程序来说,主要是检查是否有注释出现,并作出对应的动作。
- 相关规则:
(1)如果注释名称本身无法提供足够信息,设置单值注释
(2)注释属性也可以用数组形式指定。
(3)在定义注释属性时,如果属性名称为value,则可以省略属性名称,直接指定值。
(4)对成员设定默认值,使用default关键字即可。
(5)要设定数组默认值,可以在default之后加上{},必要时{}中可放置元素值。
定义注释时,可使用java.lang.annotation.Target限定时可指定java.lang.annotation.ElementType的枚举值。 在制作JavaDoc文件时,默认不会将注释数据加入文件中,如果想要将注释数据加入文件,可以使用java.lang.annotation.Documented。 默认父类设定的注释,不会被继承至子类,在定义注释时,设定java.lang.annotation.Inherited注释,就可以让注释被子类继承。
交易简介
隔离行为的支持上,JDBC可以通过Connection的getTransactionIsolation()取得数据库目前的隔离行为设定,通过setTransactionIsolation()可提示数据库设定指定的隔离行为,可设定常数是定义在Connection上
对交易不设定隔离行为TRANSACTION_NONE
本周代码托管截图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 15/15 | 学会搭建Java环境,学会写一些简单程序,掌握一些小技巧 |
第二周 | 100/200 | 2/4 | 22/37 | 学会使用IDEA |
第三周 | 400/650 | 1/5 | 24/61 | 深入了解面向对象 |
第四周 | 750/1450 | 1/6 | 30/91 | 理解继承、多态、接口 |
第五周 | 750/2200 | 2/10 | 30/120 | 接触异常处理与Map |
第六周 | 400/2600 | 2/12 | 30/150 | 感悟输入输出流与线程 |
第七周 | 600/3200 | 1/13 | 16/176 | 掌握日期和时间的运用 |
第八周 | 700/3900 | 1/14 | 16/192 | 逐步了解API |
第九周 | 890/4790 | 2/16 | 12/204 | 继续深入 |