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


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

    教材学习内容总结

    JDBC全名Java DataBase Connectivity,是联机数据库的标准规范。具体而言,它定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,而标准API中的接口会由数据库厂商操作,通常称为JDBC驱动程序,JDBC标准分为两个部分:JDBC应用程序开发者接口和JDBC驱动程序开发者接口,如图所示:
    image
    2.厂商在操作JDBC驱动程序时,依操作方式可将驱动程序分为4种类型:

    (1)JDBC-ODBC Bridge Driver

    ODBC是由Microsoft主导的数据库连接标准,基本上JDBC是参考ODBC制定而来,所以ODBC在Microsoft系统上最为成熟。驱动程序会将JDBC调用转换为对ODBC驱动程序的调用,由ODBC驱动程序操作数据库。

    (2)Native API Driver

    这个类型的驱动程序会以原生方式,调用数据库提供的原生链接库
    由于使用了原生链接库,所以驱动程序本身与平台相依,没有达到JDBC驱动程序的目标之一:跨平台
    由于直接调用数据库原生API,因此在速度上,有机会成为4种类型中最快的驱动程序。

    (3)JDBC-Net Driver

    这类型的JDBC驱动程序会将JDBC方法调用转换为特定的网络协议调用。这种技术可以跨平台。

    (4)Native Protocal Driver

    驱动程序可以使用纯粹Java技术实现,因此这种类型驱动程序可以跨平台。是最常见的驱动程序类型。
    由于通过中介服务器转换,速度较慢,获得架构弹性是使用这种类型驱动程序的目的。
    3.基本数据库操作相关的JDBC接口或类是位于java.sql包中,要取得数据库联机,必须有几个动作:

    1.注册Driver操作对象

    2.取得Connection操作对象

    3.关闭Connection操作对象
    数据库操作相关的JDBC接口或类都位于java.sql包中。
    取得联机等与数据库来源相关的行为规范在javax.sql.DataSource接口,实际如何取得Connection则由操作接口的对象来负责。
    Connection是数据库连接的代表对象,接下来要执行SQL的话,必须取得java.sql.Statement对象,它是SQL描述的代表对象。可以使用Connection的createStatement()来建立Statement对象。

    4.Java真正需要某个类时才会加载对应的.class文档,而非在程序启动就加载所有类。java.lang.Class的实例代表Java应用程序运行时加载的.class文档。可以通过Object的getClass()方法,或者通过.class常量取得每个对象对应的Class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如:Integer.TYPE可取得代表int的Class对象。
    在取得Class对象后,就可以操作Class对象的公开方法取得基本信息。

    教材学习中的问题和解决过程

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

    代码托管

    image
    image

    上周考试错题总结

    正则表达式”(‘|”)(.*?)1”匹配 “'Hello',"World””的结果是()
    A .
    不匹配
    B .
    'Hello'
    C .
    "World"
    D .
    'Hello',"World"

    正确答案:BC。错题解析:反向引用 1 代表第一个()中的匹配内容,则本题应按第一个括号中,即(‘|”)匹配。

    错题2:正则表达式 zo* 匹配()

    A .
    z
    B .
    zo
    C .
    zoo
    D .
    zooooooooooooooooooooooooooo

    正确答案:ABCD。 错题原因:*表示前面的字母出现0次或多次,我没有将1次归入多次中,所以误选了ACD。

    错题3:正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是()

    A .
    "rat".matcher("r.t")
    B .
    "r.t".matcher("rat")
    C .
    Pattern.compile("rat").matcher("r.t")
    D .
    Pattern.compile("r.t").matcher("rat")

    正确答案:D。 错题原因:对Pattern和Matcher的使用方法不太清楚。

    错题4:要使Logger日志输出到控制台,需要使用()类

    A .
    Handler
    B .
    ConsoleHandle
    C .
    StreamHandler
    D .
    FileHandler

    正确答案:B。 错题解析:参考教材P475,ConsoleHandler创建时,会自动指定OutputStream为System.err,所以日志信息会显示在控制台。

    错题5:以下代码,第五行和第七行设为()结果只会出现两条日志信息:

    1 import java.util.logging.*;
    2 public class LoggerDemo {
    3 public static void main(String[] args) {
    4 Logger logger = Logger.getLogger(LoggerDemo2.class.getName());
    5 logger.setLevel(XXX);
    6 for(Handler handler : logger.getParent().getHandlers()) {
    7 handler.setLevel(XXX);
    8 }
    9 logger.log(Level.WARNING, "WARNING 訊息");
    10 logger.log(Level.INFO, "INFO 訊息");
    11 logger.log(Level.CONFIG, "CONFIG 訊息");
    12 logger.log(Level.FINE, "FINE 訊息");
    13 }
    14 }
    
    

    A .
    Level.FINE
    B .
    Level.CONFIG
    C .
    Level.INFO
    D .
    Level.WARNING

    正确答案:C

    结对及互评

    评分标准

    1. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    2. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    3. 教材学习中的问题和解决过程, 一个问题加1分

    4. 代码调试中的问题和解决过程, 一个问题加1分

    5. 本周有效代码超过300分行的(加2分)

      • 一周提交次数少于20次的不加分
    6. 其他加分:

      • 周五前发博客的加1分
      • 感想,体会不假大空的加1分
      • 排版精美的加一分
      • 进度条中记录学习时间与改进情况的加1分
      • 有动手写新代码的加1分
      • 课后选择题有验证的加1分
      • 代码Commit Message规范的加1分
      • 错题学习深入的加1分
      • 点评认真,能指出博客和代码中的问题的加1分
      • 结对学习情况真实可信的加1分
    7. 扣分:

      • 有抄袭的扣至0分
      • 代码作弊的扣至0分
      • 迟交作业的扣至0分

    点评模板:

    • 博客中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    • 参考示例

    点评过的同学博客和代码

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

    xxx
    xxx

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第八周 361/1800 7/10 10/100
    第九周 240/2004 9/12 10/110

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    PhotoShop使用指南(3)—— 将多张图片添加到图层
    PhotoShop使用指南(2)——下雨动画效果
    PhotoShop使用指南(1)——动态图gif的制作
    SQL使用指南(2)—— 约束的使用
    SQL使用指南(1)—— 数据定义语言(DDL)
    pyspider显形js报错处理
    123123
    mongodb数据库操作,导入导出,增删改查
    selenium+phantomjs动态添加headers信息,动态加载
    使用selenium模拟登陆点击登陆按钮
  • 原文地址:https://www.cnblogs.com/fengxingck/p/6752646.html
Copyright © 2020-2023  润新知