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 继续深入

参考资料

原文地址:https://www.cnblogs.com/nostalgia-/p/5450768.html