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

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

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

    参考资料

  • 相关阅读:
    请求报文的方法及get与post的区别
    fiddler响应报文的headers属性详解
    fiddler请求报文的headers属性详解
    Session与Cookie的区别
    python学习之函数(四)--递归
    python学习之函数(四)--lambda表达式
    python学习之函数(三)--函数与过程
    python学习之函数(二)——参数
    python学习之序列
    python学习之函数(一)
  • 原文地址:https://www.cnblogs.com/zxja/p/10770407.html
Copyright © 2011-2022 走看看