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

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

教材学习内容总结

根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解

  • MySQL客户端管理工具(如Navicat)可以在与数据库服务器建立连接之后,进行建立数据库及相关操作。进行操作后如下结果:

  • Java专门操作数据库的API:JDBC,使用JDBC的步骤:①与一个数据库建立连接;②向已连接的数据库发送SQL语句;③处理SQL语句返回的结果

  • 应用程序在和MySQL数据库服务器上的数据库建立连接后,能够和数据库交互信息,在将数据库驱动放到JDK的扩展目录后,加载数据库驱动

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

连接数据库使用java.sql包中的DriverManager类中的类方法Connection getConnection来建立连接

  • 查询操作分三个步骤:①向数据发送SQL查询语句;②处理查询结果;③关闭连接(关闭后程序无法在数据库中获得数据)

    结果集的游标的初始位置在结果集第一行的前面,可以使用next()方法进行移动。也可以利用Statement stmt=con.creatStatement(int type,int concurrency)来获得一个Statement对象后,根据type类型可以使得游标以不同方式进行移动。
  • 条件与排序查询:①where语句的格式where 字段 from 表格 where 条件,使用该语句可以在表格中获取关键字且关键字满足条件的信息。其中可以用操作符进行匹配,使用%代替0个或者多个字符,用一个下划线_代替一个字符。②order by语句的格式select * from mess where name like * order by name可以在where语句的基础上进行关键字按条件排序,然后获取信息
  • 更新、添加与删除操作,首先创建Statement对象,然后用该对象调用方法public int executeUpadte(String sqlStatement)来进行操作

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

    ②添加:insert into 表 values (对应的具体记录)

    ③删除:delete from 表 where <条件字句>
  • 使用预处理语句(PrepareStatement) 可以对指定的SQL语句进行预编译处理,提高程序执行效率。PrepareStatement对象可以调用这三个方法来使得底层内部命令被数据库执行:

    ①ResultSet executeQuery()

    ②boolean execute()

    ③int executeUpdate()
  • 通配符的使用
  • 通用查询。ResultSet对象调用调用getMetaData()方法返回一个ResultSetMetaData对象,然后这个对象就可以调用getColumeCount()方法来返回结果集中列的数目;也可以调用getColumnName(int i)方法可以返回结果集中第i列的名字
  • 事务由一组SQL语句组成;事务处理是指应用程序保证事务中的SQL语句的执行与否是同步的,这可以保证数据库中数据的完整性与一致性
  • JDBC事务处理步骤:

    ①和数据库的连接对象(例如con)的提交模式是自动提交模式,即它产生的Statement对象对数据库提交的SQL语句都会立刻升序,因此为事务处理,con可以调用setAutoCommit(false)方法来关闭自动提交方式,接着再像之前那样获取Statement对象sql

    ②con可以调用commit()方法让SQL语句全部生效

    ③当con调用commit()方法进行事务处理时,只要其中一个SQL语句未能生效,就抛出SQLException异常,处理异常时要调用rollBack()方法,来撤销已经成功执行的SQL语句,以此来达到事务处理的效果
  • 介绍了SQL Server数据库的下载与连接建立
  • Derby数据库是Java平台提供的一个数据库管理系统,虽然它占空间小,但是支持几乎大部分的数据库应用所需要的特性。应用程序连接Derby数据库需要两个步骤:

    ①加载Derby数据库驱动程序:Class.forName("org.apache.jdbc.EmbeddedDriver");

    ②创建并连接数据库或连接已有的数据库:Connection con=DriverManager.getConnection("jdbc:derdy:students;create=true");这里create取true,若没有该数据库,则创建。如果将create取false,那么只能连接已有的数据库而不能创建

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

  • 怎样启动MySQL数据库服务器:在MySQL安装目录的bin子目录下键入mysqld或mysqld -nt 启动MySQL数据库服务器。
  • JDBC-MySQL数据库驱动的jar文件应该复制到JDK的扩展目录中(即JAVA_HOME环境变量指定的JDK,见第1章的1.3.3),比如:E:\jdk1.8\jre\lib\ext。
  • 预处理语句的好处:减轻数据库内部SQL语句解释器的负担。
  • 事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。事务处理步骤是调用:(1)连接对象用setAutoCommit()方法关闭自动提交模式,(2)连接对象用commit()方法处理事务,(3)连接对象用rollback()方法处理事务失败。

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

代码托管

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

本周无考试

心得体会

本周学习了如何使用Java数据库,这对我来说是全新的层面,在程序设计基础C语言的学习中从未接触过,所以具有一定挑战,同时本周任务同样繁重,算上实验三共有四篇博客需要完成,下周二还要通过科目三的考试,好在即将到来的五一假期能让人好好休息。

学习进度条

代码行数 博客量 学习时间 重要成长
目标 5000行 16篇 320小时
第一周 51/100 1/1 12/20 基本掌握了Linux的简单指令
第二周 173/200 1/1 18/20 学习了Java重要基本语法
第三周 672/800 1/1 18/20 学习了包含多个类的Java程序及类的包机制
第四周 436/600 1/1 12/20 学习程序父类和子类的继承规则
第五周 573/600 1/1 10/20 学习通过类来实现接口和接口回调
第六周 1182/1200 1/1 20/20 学习内部类、匿名类、异常类和File类
第七周 491/600 1/1 14/20 学习了Java的常用实用类
第八周 1302/1500 4/4 22/25 学习了Java的泛型类和单元测试的方法
第九周 624/800 3/3 18/20 学习使用MySQL数据库服务器
  • 计划学习时间:18小时

  • 实际学习时间:20小时

参考资料

上一篇:20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结


下一篇:20175234 2018-2019-2 《Java程序设计》第九周学习总结