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

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

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

参考资料

20175221《Java程序设计》第9周学习总结的更多相关文章

  1. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. vue中使用provide和inject刷新当前路由(页面)

    1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求. 2.遇到的问题 1. 用vue-router重新路由到当前页面,页面是不进行刷新的 2.采用window.rel ...

  2. Odoo 菜单美化的扩展模块

    详见: http://www.oejia.net/blog/2018/07/07/oejia_menu_about.html Odoo 菜单美化主题,odoo默认的菜单算是简洁好用的,如果您觉得还少了 ...

  3. Play vue.js with constant value in SailsJS

    SailsJS supplies a utility module called parasails, which defines two elements, <ajax-form> an ...

  4. Git 密钥对处理

    生成密钥对: ssh-keygen -t rsa cd .ssh ls      id_rsa          私钥      id_rsa.pub   公钥

  5. 在原有数据库中使用 CodeFirst

    一.为当前实体模型启用数据迁移 1.Enable-Migrations -ContextTypeName EME.DBHelper.StoreContext(数据访问上下文) 2. Add-Migra ...

  6. Linux(Manjaro) - IntelliJ IDEA (JetBrains) 字体模糊解决方法

    Linux(Manjaro) - IntelliJ IDEA 字体模糊解决方法 解决方法非常简单, 只要安装 JetBrains 提供的 jre 即可 使用 Octopi 或者 pacman 安装名为 ...

  7. IDEA 最新版永久破解最简单方法(版本 IntelliJ IDEA 2018.3.5)

    版权声明:本文为博主原创文章,仅作为学习交流使用,请在阅读后自行删除, 未经博主允许不得转载.https://www.cnblogs.com/linck/p/10522045.html 1.官网下载专 ...

  8. Linux使用IDEA配置maven的web项目骨架archetype(模板) 自定义骨架

    说明:本文说的骨架就是 archetype,也可以理解为模板,总是就是指你创建项目时的基本配置. 前言:在使用IDEA创建maven的web项目时,一般都是直接使用提供的默认web项目,如图 然而创建 ...

  9. MySQL replace into (insert into 的增强版)

    在使用SQL语句进行数据表插入insert操作时,如果表中定义了主键,插入具有相同主键的记录会报错:  Error Code: 1062. Duplicate entry 'XXXXX' for ke ...

  10. 简介---linux内核态和用户态

    内核态:进程运行在内核空间:管理系统的所有资源,比如读写磁盘文件,分配回收内存,从网络接口读写数据等等 用户态:进程运行在用户空间.比如一些应用程序 内核如何调用硬件资源的:内核空间中的代码控制了硬件 ...