zoukankan      html  css  js  c++  java
  • 20175221《Java程序设计》第9周学习总结

    20175221   《Java程序设计》第9周学习总结

    教材学习内容总结

    第十一章主要内容有:

    • MySQL数据库管理系统

    • 下载mysql-8.0.16-winx64
    • 启动MySQL数据库服务器

    • 启动MySQL数据库服务器并更改密码
    • MySQL客户端管理工具

    • 完成数据库的建立,创建新表
    • JDBC

    • 使用JDBC的程序和数据库建立连接,就可以使用JDBC提供的API操作数据库。
    • JDBC常用操作:
    • 与数据库建立连接
    • 向数据库发送SQL语句
    • 处理SQL语句返回的结果
    • 连接数据库

    • 下载数据库驱动:
    • 加载数据库驱动:
    • 应用程序负责加载JDBC-MySQL数据库驱动的代码如下:
    try{  Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e){}
    • 连接数据库:
    • 使用Connection getConnection(java.lang.String)方法建立连接的代码如下:
    Connection con;
    String uri = 
    "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);
    }
    • 使用Connection getConnection(java.lang.String, java.lang.String, java.lang.String)方法,如果root用户密码是xx,将&password=更改为&password=xx即可,建立连接的代码如下:
    Connection con;
    String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true";
    String user ="root";
    String password ="";
    try{  
        con = DriverManager.getConnection(uri,user,password); //连接代码
     }
    catch(SQLException e){
        System.out.println(e);
    }
    • 注意汉字问题
    • 查询操作:

    • 向数据库发送SQL查询语句,代码如下:
    try{Statement sql = con.createStatement();
    }
    catch(SQLException e){}
    • 处理查询结果
    • 关闭连接
    • 顺序查询:指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false

    • 控制游标:为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象。
       Statement stmt = con.createStatement(int type ,int concurrency); 

    • 条件与排序查询:

    • where子语句一般格式: select 字段 from 表名 where 条件 
    • 排序:用order by子语句对记录排序更新、添加与删除操作
    • 更新、添加与删除操作

    • 更新: update 表 set 字段 = 新值 where <条件子句> 
    • 添加: insert into 表(字段列表) values (对应的具体的记录) 或 insert into 表 values (对应的具体的记录) 
    • 删除: delete from 表名 where <条件子句> 
    • 使用预处理语句:Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行。

    • 事务:

    • JDBC事务处理步骤:
    • 用setAutoCommit(booean b)方法关闭自动提交模式
    • 用commit()方法处理事务
    • 用rollback()方法处理事务失败
    • 连接SQL Server数据库

    • 加载SQL Server驱动程序:
    try {  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    }
    catch(Exception e){
    }
    • 连接SQL Server数据库:
    • try{
            String uri= "jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse";
            String user="sa";
            String password="dog123456";
            con=DriverManager.getConnection(uri,user,password);
         }
      catch(SQLException e){
            System.out.println(e);
      }
    • 连接Derby数据库

    • 代码如下:
    • Connection con = 
      DriverManager.getConnection("jdbc:derby:students;create=true");

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

    • 问题1:在更改MySQL密码时,报错
    • 问题1解决方案:

    • 这是因为我理解错了它 Enter password 的意思,这是让我输入原来的密码。而原本默认是没有密码的,所以直接回车即可。之后更改密码,完成。

    代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master/eleven/)

    statistics.sh脚本的运行结果截图

    上周考试错题总结 

    • 上周考试无错题

    学习进度条(四月份继三月份)

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标   5000行 8篇 100小时  
    第一周 13/13 1/1 12/12  
    第二周     309/322 1/2 13/25  
    第三周     614/923 1/3 15/40  
    第四周       384/1379 1/4 12/52  
    第五周       565/1954 1/5 12/64  
    第六周     1080/3034 1/6 15/79  
    第七周       671/3705 1/7 12/91  
    第八周       597/4302 1/8 12/103  
    第九周     1533/5238 1/9 12/115  

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

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

    • 计划学习时间:12

    • 实际学习时间:12

    • 改进情况:继续保持稳定前进

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

    参考资料

  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/zxja/p/10770407.html
Copyright © 2011-2022 走看看