• 20175202 《Java程序设计》第九周学习总结


    20175202 2018-2019-2 Java程序设计》第九周学习总结

    教材知识点总结

    第11章 JDBC与MySQL数据库

    MySQL数据库管理系统

    MySQL数据库管理系统,简称MySQL,是世界上最流行的开源数据库管理系统,其社区版(MySQL Community Edition)是最流行的免费下载的开源数据库管理系统。

    下载安装后,进行启动MySQL数据库服务器,并建立连接,建立数据库,创建表等操作。

    连接MySQL数据库

    1.下载JDBC-MySQL数据库驱动

    2.加载JDBC-MySQL数据库驱动

    代码如下:

    try{
    Class.forName("com.mysql.jdbc.Driver");
    }catch(Exception e){}

    3.连接数据库

    使用Connection getConnection(java.lang.String)方法建立连接的代码如下:

    Connection con;
    Stringuri=
    "jdbc:mysql://192.168.100.1:3306/students?user=root&password=&useSSL=true";
    try{
    con=DriverManager.getConnection(uri);//连接代码
    }
    catch(SQLException e){ System.out.println(e);
    }

    使用getConnection(java.lang.String, java.lang.String, java.lang.String)方法建立连接的代码如下:

    Connection con;
    Stringuri =
    "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true";Stringuser ="root";Stringpassword ="";
    try{
    con = DriverManager.getConnection(uri,user,password);//连接代码
    }
    catch(SQLException e){
    System.out.println(e);
    }

    4.注意汉字问题

    查询操作

    具体步骤:

    1.得到SQL查询语句对象

    try{ Statement sql=con.createStatement();
    }
    catch(SQLException e ){}

    2.处理查询结果

    注意:

    无论字段是何种属性,总可以使用

    getString(int columnIndex)或

    getString(String columnName)

    方法返回字段值的串表示

    3.关闭连接

    顺序查询:

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

    控制游标:

    为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象。

    Statement stmt = con.createStatement(inttype,intconcurrency);

    条件与排序查询:

    where子语句

    一般格式:

    select 字段 from 表名 where 条件

    2.排序

    用order by子语句对记录排序

    更新、添加与删除操作

    1.更新

    update 表 set 字段 = 新值 where <条件子句>

    2.添加

    insert into 表(字段列表) values (对应的具体的记录)

    insert into 表 values (对应的具体的记录)

    3.删除

    delete from 表名 where <条件子句>

    使用预处理语句

    Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行。

    事务

    JDBC事务处理步骤

    1.用setAutoCommit(booean b)方法关闭自动提交模式

    2.用commit()方法处理事务

    3.用rollback()方法处理事务失败

    学习过程中遇到的问题

    1.jdbc于hibernate连接数据库相比有什么优劣?

    解决:jdbc就内存消耗、运行效率和开发效率上较hibernate的架构有很大优点。但在分布式,安全检查,集群,负载均衡的支持上,两个构架没有差别。

    2.无法运行教材上Example11_1的代码。

    解决:在命令行终端输入sudo  apt-get  install  mysql-server mysq1-client命令,安装MySQL,之后问题解决。

    上周考试错题总结

    1. 如果超出JVM运行能力之外,如“byte[] arr=new
    byte[1024 * 1024 *600];”会抛出java.lang.OutOfMemory
    Error异常。
    A.true
    B.false
    正确答案:B
    知识点: 对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的。


    2.InputStream类继承自FileInputStream,可以以字节为单位读取文件。

    A.true
    B.false
    正确答案:B
    知识点:InputStream类是父类,FileInputStream是子类。

    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。
    正确答案:BCD
    知识点:如果指定对象无法与该 set 中的当前元素进行比较,则抛出ClassCastException异常。

    学习心得体会

           本周学习了数据库的相关内容,大部分时间主要花在了MySQL的安装上。但经过自己的认真学习和同学的帮助,成功安装了MySQL并学习了数据库的内容。本周在Java课程第十一章的学习上用了较长的时间,也是自己的一个进步,希望自己再接再厉。

  • 相关阅读:
    牛客练习赛64 D.宝石装箱 【容斥原理+背包DP】
    洛谷 P5212 SubString【SAM+LCT】
    洛谷 P4219 [BJOI2014]大融合【LCT】
    洛谷 P1501 [国家集训队]Tree II【LCT】
    洛谷 P5357 【模板】AC自动机(二次加强版)
    洛谷 P3690 【模板】Link Cut Tree (动态树)
    洛谷 P2463 [SDOI2008]Sandy的卡片【后缀数组】
    P3181 [HAOI2016]找相同字符【后缀数组】
    洛谷 SP705 【后缀数组】
    牛客小白月赛18 E.Forsaken的数列【Splay】
  • 原文地址:https://www.cnblogs.com/gexvyang/p/10786403.html
Copyright © 2020-2023  润新知