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()方法处理事务失败。
代码调试中的问题和解决过程
代码托管
本周无考试
心得体会
本周学习了如何使用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小时