• # 20155214 2016-2017-2 《Java程序设计》第9周学习总结


    20155214 2016-2017-2 《Java程序设计》第9周学习总结

    教材学习内容总结

    JDBC架构

    JDBC全名Java DataBase Connectivity,是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作的标准接口。

    4种类型的驱动程序

    (1)JDBC-ODBC Bridge Driver
    (2)Native API Driver
    (3)JDBC-Net Driver
    (4)Native Protocol Driver

    连接数据库

    • 要连接数据库,可以相DriverManager取得Connection对象。
    • Connection是数据库联机的代表对象,一个Connection对象就代表一个数据库联机。
    • 要取得Connection操作对象,可以通过DriverManager的getConnection():
    • SQLException是在处理JDBC时经常遇到的一个异常对象,为数据库操作过程发生错误时的代表对象。
    • 必须在CLASSPATH中设定驱动程序JAR文档。
    • 操作Driver接口的对象是JDBC进行数据库存取的起点。
    • 在操作完数据库之后,若确定不再需要连接,则必须使用close()来关闭与数据库的连接,以释放连接时相关的必要资源,像是联机相关对象、授权资源等。

    反射

    • .class文档反映了类基本信息,因而从Class等API取得类信息的方式就称为反射。
    • 通过Object的getClass()方法,或者.class常量取得每个对象对应的class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如,Integer.TYPE可取得代表int的Class对象。
    • 使用class.forName()的方法来实现动态加载类。

    加载

    • 类加载器都继承自抽象类java.lang.ClassLoader,每个.class文档加载后,都会有个Class实例来代表。
    • 将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个这个类的Java.lang.Class对象,用来封装类在方法区类的对象

    自定义泛型、枚举。

    自定义泛型

    • 在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。

    • 共变性(Covariance):,B是A的子类,Node<B>可视为一种Node<A>,称Node具有共变性。

    • 通配字符"?"与extends限制T的类型,只能通过T声明的名称取得对象指定给Object,或将T声明的名称指定为null。

    自定义枚举

    • enum定义了特殊的类,继承自java.lang.Enum。

    • enum是个抽象类,无法直接实例化。

    • enum操作Comparable接口,ordinal的值是会使用enum枚举的成员顺序。equals()与hashCode()基本上继承了Object的行为,但被标示为final。

    • 可以使用values()的方法,将内部维护Action枚举实例的数组复制后返回。

    教材学习中的问题和

    ResultSet

    • 在ResultSet时,默认可以使用next()移动数据光标至下一笔数据,然后使用getxxx()方法来取得数据。
    • ResultSet可以使用previous()、first()、last()等方法前后移动数据光标,还可以调用updatexxx()、updateRow()等方法进行数据修改。

    结果集类型

    • ResultSet.TYPE_FORWARD_ONLY(前进数据光标)
    • ResultSet.TYPE_SCROLL_INSENSITIVE(前后移动数据光标)
    • ResultSet.TYPE_SCROLL_SENSITIVE(前后移动数据光标,反映数据库中的数据修改)

    更新设定的2种设定

    • ResultSet.CONCUR_READ_ONLY(默认)(进行数据读取)
    • ResultSet.CONCUR_UPDATABLE(进行数据读取、更新)

    数据光标移动API

    • 绝对位置移动:
      absolute()、afterLast()、beforeFirst()、first()、last()。

    • 相对位置移动:
      relative()、previous()、next()。

    • 判断目前位置:
      isAfterLast()、isBeforeFirst()、isFirst()、isLast()。

    • 数据修改的条件限制:
      必须选取单一表格;必须选取主键。;必须选取所有的NOT FULL的值。

    • 数据更新:
      调用updatexxx()方法,然后调用updateRow()方法。取消更新:调用cancelRowUpdates()。

    • 新增数据:
      先调用moveToInsertRow(),之后调用updatexxx()设定要新增的数据各个字段,然后调用insertRow()新增数据。

    • 删除数据列:
      调用deleteRow()。

    代码调试中的问题和解决过程

    • 进行TDD测试附属类对象时,出现expect与actual值相同但测试失败的情况。
      分析后发现需要调用复数类的toString()方法,返回String型,而不能只单纯的使用复数类对象。

    • 当测试类没有与待测试类相同目录下时,待对象对象会显示调用失败。

    • ...

    代码托管

    代码量

    上周考试错题总结

    • NIO2中,可以使用(FileSystem)的方法取出文件系统根目录信息。(FileSystem.getRootDirectorie方法)

    • 正则表达式zo匹配(z/zo/zoo/zoooo)。(可以是0次)

    • ByteBuffer调用flip()之后,position的值一定是0。(True)

    结对及互评

    参考示例

    其他(感悟、思考等,可选)

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 38/100 1/2 15/15
    第二周 294/332 3/4 30/45
    第三周 763/1073 2/6 32/77
    第四周 1202/2277 1/7 29/106
    第五周 930/3206 2/9 32/138
    第六周 642/3848 1/10 25/161
    第七周 249/4097 2/12 22/181
    第八周 457/4352 1/13 27/181
    第九周 338/4689 2/15 23/204


    N「次数」 Y「计划学习时间 X「实际学习时间」 X-/+X/N
    第一周 0 18 15
    第二周 1 33 30 0
    第三周 2 35 32 16-48
    第四周 3 35 29 25.4-44.6
    第五周 4 32 27 25.25-38.75
    第六周 5 28 25 23-33
    第七周 6 24 22 16.7-23.3
    第八周 7 30 27 26.2-33.8
    第九周 7 24 23 20.7-27.3

    参考资料

  • 相关阅读:
    树的直径、重心、中心
    DP优化--四边形不等式
    P5569 【SDOI2008】 石子合并(黑科技)
    P3147 262144游戏
    P3205 【HNOI2010】合唱队
    Windows Server 2012 虚拟化实战:网络(一)
    Windows Server 2012 虚拟化实战:存储(二)
    Android使用最小宽度限定符时最小宽度的计算
    Eclipse调试Android App若选择“Use same device for future launches”就再也无法选择其他设备的问题
    Python的模块引用和查找路径
  • 原文地址:https://www.cnblogs.com/besti155214/p/6746525.html
Copyright © 2020-2023  润新知