201621123001 《Java程序设计》第14周学习总结
1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容。
- Mysql数据库简单操作,常用的操作命令
- 启动:进入Mysql (从命令行mysql -u root -p)
- 退出:quit或exit
- 显示所有数据库:show databases
- 创建数据库:creat database test
- 删除数据库:drop database test
- 连接数据库:use test(使用前要先连接数据库)
- 查看当前连接色数据库:select database()
- 当前数据库包含的表:show tables
- JDBC的工作原理
- JDBC API 提供程序员调用的接口和类
- JDBC 驱动 负责连接各种不同的数据库
- 当JDBC与数据库交互时发生错误会抛出SQLException,该异常可以知道:
- 错误的描述
- SQL状态码
- 错误码
- 原因
- 释放资源顺序按照:ResultSet->Statement->Connection
- PreparedStatement接口继承自Statement,当SQL语句运行多次时,使用PreparedStatement可以提高运行效率
- 事务处理:希望一条语句只有当另一个语句执行完才生效
2. 使用数据库技术改造你的系统
2.1 简述如何使用数据库技术改造你的系统。要建立什么表?截图你的表设计。
Answer: 要将所有的操作转变为在数据库中操作例如:
1. 向购物车中增加货品
2. 将货品从购物车中删除
3. 改变货品的购买数量
4. 展示购物车状态
- 需要建立一个购物车信息表,截图如下:

2.2 系统中使用到了JDBC中什么关键类?
Answer:
- DriverManager:加载驱动,建立连接
- Connection:与数据库建立连接
- Statement:处理连接中的SQL语句
- ResultSet:处理结果集
2.3 截图数据库相关模块的关键代码。关键行需要加注释。
- 对数据库进行增删查


3. 代码量统计
3.1 统计本周完成的代码量
需要将每周的代码统计情况融合到一张表中。
| 周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
|---|---|---|---|---|
| 1 | 374 | 374 | 5 | 5 |
| 2 | 889 | 515 | 15 | 10 |
| 3 | 1417 | 528 | 22 | 7 |
| 4 | 1838 | 421 | 27 | 5 |
| 6 | 2608 | 770 | 38 | 11 |
| 7 | 3270 | 662 | 48 | 10 |
| 8 | 4068 | 798 | 52 | 4 |
| 9 | 4543 | 475 | 60 | 8 |
| 10 | 4988 | 445 | 65 | 5 |
| 11 | 5421 | 433 | 72 | 7 |
| 12 | 6327 | 906 | 88 | 16 |
| 13 | 6737 | 410 | 96 | 7 |
| 14 | 7406 | 669 | 105 | 9 |
| 15 | 8048 | 643 | 115 | 10 |
选做:4. 数据库学习指导
1. MySQL数据库基本操作
建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)
在自己建立的数据库上执行常见SQL语句(自己完成,不必截图)

2. 使用JDBC连接数据库与Statement
2.1 使用Statement操作数据库。完成实验任务书-题目2。截图其中的public static void displayAll()与public static int insert(Student stu)的关键代码并出现自己的学号。
public static void displayAll()

- 运行截图

public static int insert(Student stu)

- 运行截图

2.2 如果要完成根据指定姓名查询学生数据,即完成函数public Student findStuByName(String name),其中的sql语句怎么写?
Answer: sql语句select *from student where name = 'zhang'
2.3 你认为使用JDBC操作数据库的套路是什么?
Answer:
- 先加载驱动
- 与数据库建立连接
- 获取操作的对象
- 定义操作的sql语句
- 执行操作获取结果集
- 关闭结果集
- 关闭数据库操作
- 关闭数据库连接
3. PreparedStatement与参数化查询
3.1 使用PreparedStatement,编写public Student findStuByName(String name),实现根据name进行查找。(粘贴关键代码及运行截图,运行截图中需出现学号,比较2.2,说明两种实现的不同)
- 关键代码及运行截图

- 不同:PreparedStatement实现了预编译,并可以重复使用,但是Statement只能执行一次性的。
3.2 如果要实现模糊查找,怎么修改?比如编写public List findStusByName(String name),可根据name进行模糊匹配,如将姓名中包含zhang的同学都找出来。

6. 事务处理
6.1 使用代码与运行结果证明你确实实现了事务处理功能,并说明事务处理时在编码时需要注意哪些?注意:要比较运行成功与运行失败两种情况下对数据库的更改情况。(粘贴一段你认为比较有价值的代码,出现学号)
Answer: 事务处理要求在编码时要注意对数据库的操作要在一个结束了再执行另外一个开始。

- 成功:

-失败:

6.2 你觉得什么时候需要使用事务处理?
Answer:就是当存在一系列数据库的操作时,比如这个转账功能,需要更改两个账户的数据,但是如果一方失败则整个操作都失败,是一个统一提交的过程,为了避免数据库乱掉就需要使用数据处理。
201621123001 《Java程序设计》第14周学习总结的更多相关文章
- 2018面向对象程序设计(Java)第14周学习指导及要求
2018面向对象程序设计(Java)第14周学习指导及要求(2018.11.29-2018.12.2) 学习目标 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及 ...
- 面向对象程序设计(JAVA) 第14周学习指导及要求
2019面向对象程序设计(Java)第14周学习指导及要求 (2019.11.29-2019.12.2) 学习目标 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本输入组件用途 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 201521123038 《Java程序设计》 第九周学习总结
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20175221 2018-2019-2 《Java程序设计》第一周学习总结
20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...
- 20175314 《Java程序设计》第九周学习总结
20175314 <Java程序设计>第九周学习总结 教材学习内容总结 根据课本的介绍下载了MySQL和Navicat for MySQL并成功对后者进行破解 MySQL客户端管理工具(如 ...
- 20175314 《Java程序设计》第二周学习总结
20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...
- 20155312 2016-2017-2 《Java程序设计》第九周学习总结
20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...
随机推荐
- canvas学习之折线图
接着上一张柱状图讲,我们是使用折线图: import {canvasPoint} from '../../assets/js/canvas';import {basicInfo,histogramMo ...
- hammer.js方法总结(只做了一个简单的demo)
html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- SQL SERVER pivot(行转列),unpivot(列转行)
[pivot]行转列:多行变一列 假设学生成绩表Score1 Name Subject Score 小张 语文 88 小花 数学 89 小张 数学 90 Name 语文 数学 小花 null 89 小 ...
- laravel中常用的获取路径的函数
1. app_path() // 获取app目录的路径 2. base_path() // 根目录的路径 3. config_path() // config目录的路径 4. public_path( ...
- 廖雪峰网站:学习python基础知识—list和tuple(二)
1.list """ Python内置的一种数据类型是列表:list. list是一种有序的集合,可以随时添加和删除其中的元素. """ c ...
- SQLServer2012数据库降级至SQLServer2008R2的方法
一. 背景 因为对方的客户的服务器安装的数据版本2012,公司开发同事需要客户数据库的备份数据,但是公司数据版本是2008R2的,无法还原. 由于2012备份无法直接还原至2008R2(MSSQ ...
- 第一阶段——站立会议总结DAY10
1.昨天做了什么:找到了一些模板,把自己的修改了修改,排版了一下. 2.今天准备做什么:做最后的整理,添加一些小图标一些的.还要把按钮的字体换成红色. 3.遇到的困难:一般定义的文字和下拉菜单的文字的 ...
- 【PowerDesigner】【2】将工具栏显示出来
问题:我的软件一打开,没有工具栏 解决方案:Tools→Customize Menus and Tools→Palette→Close 参考文档: PowerDesigner如何将消失的工具栏显示出来 ...
- 关于react16.4——上下文Context
首先我们来聊一聊(上下文)Context. 上下文(Context) 提供了一种通过组件树传递数据的方法,无需在每个级别手动传递 props 属性. 在典型的 React 应用程序中,数据通过 pro ...
- ayit-#41. 因数的个数-数论
搞了两天发现是qpow时大数相乘爆精度了,以前没遇到过,因为大数检测时模数达到了1e18,所以qpow可能会爆,应该利用快速幂原理写一个快速加即可. 先筛出1e6以内的质数,然后把x里<=1e6 ...