• 20165202 2017-2018-2 《Java程序设计》第7周学习总结


    20165202 2017-2018-2 《Java程序设计》第7周学习总结

    教材学习内容总结

    Ch11

    • 连接MySQL数据库

      • 下载JDBC-MySQL数据库驱动

      • 加载JDBC-MySQL数据库驱动

      • 连接数据库
        (Connection getConnection(java.lang.String,java.lang.String,java.lang.String)
        Connection getConnection(java.lang.String))

      • 如果数据库的表中的记录有汉字,那么在建立连接时需要额外多传递一个参数characterEncoding,并取值gb2312或utf-8

        String uri = 
        "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8";
        con = DriverManager.getConnection(uri, "root","");  //连接代码
        
    • 查询操作

      • 顺序查询:
        指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false
    • 更新、添加与删除操作

      • 更新update 表 set 字段 = 新值 where<条件子句>
      • 添加insert into 表(字段列表)value (对应的具体的记录)
      • 删除delete from 表名 where <条件子句>
    • 使用预处理语句

    • 通用查询

    • 事务

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

    • 问题1:看过教材后JDBC的用途和意义不太明白

    • 问题1解决方案:参考《深入浅出JDBC-快速入门

      不同的可执行文件都能通过JDBC访问数据库,又兼备存储的优势。简单说它就是JAVA与数据库的连接的桥梁或者插件,用JAVA代码就能操作数据库的增删改查、存储过程、事务等。

      JDBC提供的接口包括:

      JAVA API:提供对JDBC的管理链接;JAVA

      Driver API:支持JDBC管理到驱动器连接。

      DriverManager:这个类管理数据库驱动程序的列表,查看加载的驱动是否符合JAVA Driver API的规范。

      Connection:与数据库中的所有的通信是通过唯一的连接对象。

      Statement:把创建的SQL对象,转而存储到数据库当中。

      ResultSet:它是一个迭代器,用于检索查询数据。

      URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

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

    • 问题1:MySQL初始化失败

    • 问题1解决方案:

      使用管理员的身份打开cmd,再执行mysqld --initialize-insecure指令。如果之前已经以非管理员的形式执行了指令,一定要删除原来的data文件夹。如果提示“该文件正在被使用”,需要CTRL+SHIFT+ESC打开任务管理器关闭mysql进程即可正常删除data文件夹。

    代码托管

    上周考试错题总结

    1.已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?

    A . for(Object o : list)

    B . for(Object o : getCollection())

    C . for(Object o : list.iterator())

    D . for(lterator i ; list.iterator() ; i.hasNext() )

    E . for(lterator i=list.iterator(); i.hasNext(); )

    正确答案: B E

    2.下列关于泛型类的子类的说法,正确的个数为

    ①LinkedList泛型类创建一个链表结构的对象。

    ②Stack泛型类创建一个堆栈对象。

    ③HashMap泛型类创建散列映射。

    ④DelayQueue泛型类创建一个无界阻塞队列。

    ⑤TreeSet泛型类创建树映射。

    ⑥Vector创建可增长的对象数组。

    A . 6

    B . 5

    C . 4

    D . 3

    正确答案: B

    解析:⑤TreeSet泛型类创建树集。

    3.下列关于TreeSet泛型类常用方法的介绍,正确的是

    A . public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。

    B . public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。

    C . public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。

    D . public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。

    正确答案: B C D

    解析:A项:如果指定对象无法与该 set 中的当前元素进行比较,则抛出ClassCastException异常。

    4.下列关于正则表达式的说法,正确的是

    A . aw*匹配以字母a开头的单词

    B . d+匹配1个或更多连续的数字。

    C . w{6} 匹配6个及以上字符的单词。

    D . [0-9]代表的含意与d就是完全一致的:一位数字

    E . S+匹配不包含空白符的字符串。

    F . (d{1,3}.){3}d{1,3}用来匹配 IP地址。

    正确答案: A B D E

    解析C项:w{6} 匹配刚好6个字符的单词。F项: IP地址中每个数字都不能大于255,该表达式忽略了这个约束条件。

    5.下列说法正确的是

    A . Java 8之前,对日期进行运算,使用DateFormat类。

    B . 需要人类能理解的时间,建议使用Date类的toString()。

    C . 现在国际上通用的标准时间是GMT。

    D . new Date(System.currentTimeMillis())等价于new Date()

    正确答案: D

    6.What is the output of the following code?(下面代码的运行结果是?)

    LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
    System.out.println(date.getYear() + " " + date.getMonth()
    + " "+ date.getDayOfMonth());
    

    A . 2018 APRIL 4

    B . 2018 APRIL 30

    C . 2018 MAY 10

    D . Another date

    E . The code does not compile.

    F . A runtime exception is thrown.

    正确答案: F

    解析:Java throws an exception if invalid date values are passed. There is no 40th day in April—or any other month for that matter.

    7.下列哪个表达式是正确的(无编译错误)?

    A . int m =Float.parseFloat("567");

    B . int m =Short.parseShort("567")

    C . byte m =Integer.parseInt("2");

    D . float m =Float.parseDouble("2.9")

    正确答案: C

    8.对于如下代码,下列哪个叙述是正确的?

    public class E {
      public static void main (String args[]) {
        String s1 = args[1];
        String s2 = args[2];
        String s3 = args[3];
        System.out.println(s3); 
      }
    }
    

    A . 程序出现编译错误。

    B . 无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。

    C . 无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。

    D . 无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。

    正确答案: D

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
    目标 5000行 30篇 400小时
    第一周 24/24 1/4 15/15
    第二周 423/423 2/6 14/29
    第三周 702/1109 1/7 16/45
    第四周 918/2027 2/9 16/61
    第五周 1208/3235 2/11 15/76
    第六周 1137/4372 2/13 14/90
    第七周 549/4921 1/14 10/100
  • 相关阅读:
    java.lang.ArrayIndexOutOfBoundsException异常分析及解决
    Android_开发片段(Part 2)
    保存错误日志回传服务器之回传错误“信息文件”
    node.js
    拼接json
    CommonJS / Node.js/ Vue学习资料
    合并PDF
    java 多线程
    linux 运行jar包
    mvn 命令
  • 原文地址:https://www.cnblogs.com/jhs888/p/8846888.html
Copyright © 2020-2023  润新知