20165223《Java程序设计》第七周Java学习总结
教材学习内容总结
第11章-JDBC与MySQL数据库
要点
- MySQL数据库管理系统
- 连接MySQL数据库
- 查询操作(基础)
- 更新、添加、删除(基础)
- 预处理语句(重点)
- 通用查询(难点)
- 事务
笔记
1. 查询操作
基本操作:
- 与数据库取得连接(不同数据库仅在这一句中的链接和代码中的驱动
forname不同):
String uri = "jdbc:mysql://localhost:3306/<所键表格的名字>?useSSL=true";
- 向已连接的数据库发送SQL语句创建查询对象(置于代码中):
try{ Statement sql=con.createStatement();
}
catch(SQLException e ){}
- 处理SOL语句返回的结果(两种方式选一即可):
getString(int columnIndex)
getString(String columnName)
- 友好关闭数据库:
con.close()
- 与数据库取得连接(不同数据库仅在这一句中的链接和代码中的驱动
三种查询方式:
- 顺序查询
- 控制游标
- 得到可滚动的结果集:
Statement stmt = con.createStatement(int type ,int concurrency);
- 得到可滚动的结果集:
- 条件与排序查询
- where子句:
select 字段 from 表名 where 条件 - 排序:
用order by子语句对记录排序
- where子句:
2. 更新、添加、删除
- 更新:
update 表 set 字段 = 新值 where <条件子句> - 添加:
insert into 表(字段列表) values (对应的具体的记录)或insert into 表 values (对应的具体的记录) - 删除:
delete from 表名 where <条件子句>
3. 使用预处理语句
- 使用通配符
常用预处理语句设置通配符?的值的方法:
void setData(int parameterIndex,Data x)
void setDouble(int parameterIndex,double x)
void setFloat(int parameterIndex,float x)
void setInt(int parameterIndex,int x)
void setLong(int parameterIndex,long x)
void setString(int parameterIndex,string x)
4. 通用查询
- 编写一个类,只要用户将数据库名,SQL语句传递给该类对象,那么这个对象就用一个二维数组返回查询的记录(eg. 运行结果是个表格),使用的是返回到程序中的结果集来获取相关信息
- 具体步骤:
- 结果集的元数据对象:
ResultSetMetaData = rs.getMetaData(); - 调用getColumnCount()方法返回结果集rs中的列的数目:
int columnCount = metaData.getColumnCount() - 想要返回第i列的数据就用:
string columnCount = metaData.getColumnCount(i)
- 结果集的元数据对象:
5. 事务
- JDBC事务处理步骤
- 关闭自动提交模式方法:
setAutoCommit(booean b) - 处理事务方法:
commit() - 处理事务失败:
rollback()
- 关闭自动提交模式方法:
教材学习中的问题和解决过程
- Q1:在老师的推荐和教程Intellj IDEA 简易教程的指导下,选择直接安装XAMPP,但下载完后运行了setup_xampp.bat显示运行成功了,但打开contral界面却出现如下状况?

经过查询得知,造成这个错误的原因是,XAMPP的设置的常用端口,包含http和https端口都被占用了,参考了网上的经验对Apache的Config文件进行修改后就可以运行了。参考了百度经验,但由于我的82端口也被占用,因此将“80”改为“8080”,将“443”改为“4433”,关掉XAMPP后再次打开就可以运行了。

- Q2:在phpMyAdmin中导入了安装包world.sql,在IDEA中运行程序还是出现错误?

检查后发现是在配置的时候忘了将zip解压缩,导致选择的是错误的对象,创建出的是空的表。


可以使用快捷方式打开project Structure

解压后再按照教程进行下一步,成功建表后就可以运行了


测试代码运行结果:

在phpAdmin中查询有:

代码调试中的问题和解决过程
- Q1:运行测试代码时代码可以成功运行,但在运行Example11_1.java时,却出现如下错误?

改正参数后仍有错误(查找失败,不存在表格)

在仔细审查后发现还未建立表格,回到SQL处执行代码:
use demo;
CREATE TABLE students (
number char char(50) AUTO_INCREMENT PRIMARY KEY,
name varchar(100),
birthday data,
height float
) CHARSET=UTF8;
建表如图:

再回到IDEA中运行代码即可成功运行了

思考与感悟
本周主要学习了数据库的安装和操作,在安装XAMPP的时候出现了很多小问题,在同学和教材的帮助下成功一一解决了,安装好了数据库,今后的学习应该会更加方便。
错题总结
详见博客:week6测试错题总结
代码托管
详见码云:码云作业

学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 3000行 | 30篇 | 400小时 | |
| 第七周 | 1324/200 | 2/11 | 20/20 | 深入 |
参考资料
20165223《Java程序设计》第七周Java学习总结的更多相关文章
- 20145203 盖泽双《Java程序设计》第一周的学习总结
20145203 盖泽双<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.Java是一门完全面向对象,安全可靠,与平台无关的编程语言. 2.Java现由Java SE.Ja ...
- 20165223《Java程序设计》第九周Java学习总结
教材学习内容总结 第13章- URL类 InetAddress类 套接字 UDP数据报 广播数据报 Java远程调用(RMI) 教材学习中的问题和解决过程 1. URL类 URL类构造方法: 使用字符 ...
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20165203《Java程序设计》第二周Java学习总结
教材学习内容总结 第二章 (一)标识符 注意: 标识符由字母.下画线.美元符号和数字组成,长度不受限制. 标识符第一个字符不能是数学字符. 标识符不能是关键字. 标识符不能是true.false和nu ...
- 20165223《JAVA程序设计》第二周学习总结
20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 i ...
- 20165223《JAVA程序设计》第一周学习总结
20165223 <JAVA程序设计>第一周学习总结 教材学习内容总结 通过网站JAVA第一章视频教程.教材.老师所给的教程及网上查询进行学习 第一章要点 JAVA地位和特点 地位:网络. ...
- 20165203《Java程序设计》第七周Java学习总结
20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
随机推荐
- 关于PHP的那些坑
因为PHP是弱类型语言,常常会发生许多意想不到的问题,所以,我们再次一一细数这些我们踏过的坑!!! 1) foreach中自动回将key为数值的转化成整型,造成无法匹配 function transl ...
- 安全测试学习之bWAPP环境搭建
安装环境:window7+IIS+mysql+php bWAPP下载地址:https://sourceforge.net/projects/bwapp/files/bee-box/ ,直接点击Dow ...
- 【译】Focused and Diffuse Modes(专注与发散模式)
Focused and Diffuse Modes ---文章来源:coursera 面对一个问题,当无论如何都想不出办法时,你会怎么做呢?对于僵尸们来说,只需简单地不断用脑袋撞墙即可.然而活生生的大 ...
- js中获取当前项目名等
实际上通过window.location可以获取很多跟资源路径相关的信息,需要用到的时候直接通过浏览器调试可以查看window.location的一些属性
- ssm框架整合配置,用maven配置依赖jar包
1.创建maven project 首先在pom.xml中指定工程所依赖的jar包 <project xmlns="http://maven.apache.org/POM/4.0.0& ...
- 除了binlog2sql工具外,使用python脚本闪回数据(数据库误操作)
利用binlog日志恢复数据库误操作数据 在人工手动进行一些数据库写操作的时候(比方说数据修改),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线 ...
- 关于事务回滚,rollback tran到底要不要写?
关于事务回滚,有些不明白,不知道rollback tran在什么时候用. begin tran update 表1 update 表2 commit tran 这种写法,在更新表1或表2时出错,事务会 ...
- luoguP4035
P4035 [JSOI2008]球形空间产生器 Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以 ...
- Mac下安装MySQL(Mac 10.12)
系统:Mac OS 10.12 MySQL:5.7.15 前言: 安装mysql有两种方式:1为官方下载dmg安装包.2为使用brew进行安装. 安装步骤: 一.官方下载dmg安装包进行安装 1.登陆 ...
- JavaEE进阶集锦(持续更新中)
1.影响Servlet生命周期的注解:@PostConstruct和@PreDestroy @PostConstruct:被修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次, ...