MySQL案例1 MySQL的简单应用及用Java操作
MySQL案例1 MySQL的简单应用及用Java操作
一、具体案例描述
MySQL数据库操作:
学生表student信息如下,
Name | English | Math | Computer |
---|---|---|---|
zhangsan | 69 | 86 | 77 |
lisi | 55 | 100 | 88 |
根据上面给出的student表,在MySQL数据库中完成以下操作:
(1)在MySQL中创建student表,并录入数据。
(2)用SQL语句输出student表中的所有记录。
(3)查询zhangsan的Computer成绩。
(4)修改lisi的Math成绩,改为95。
根据上面已经设计出的student表,使用MySQL的Java客户端编程实现以下操作:
(1)向student表中添加如下所示的一条记录。
Name English Math Computer scofield 45 89 100 (2)获取scofield的English成绩信息。
二、上机操作
0、实验环境
硬件平台:一台笔电,操作系统为Win10pro 64位
软件环境:
数据库Server版本,8.0.30 MySQL Community Server
图形化管理工具,Navicat Premium 15.0.25
Java开发工具,IntelliJ IDEA 2020.1
Jdk版本,jdk1.8.0_221
1、要用的SQL语句
(创建过程可用navicat可视化软件来完成操作,这里为了便于学习全部使用SQL语句)
- 创建数据库
1 | -- 先创建一个学生集合的数据库 |
- 创建表
1 | -- 创建学生表 |
用navicat刷新一下数据库,发现新增了数据库studentdb和student表
插入数据
1
2-- 批量插入学生成绩
insert into `student` (Name,English,Math,Computer) values ('zhangsan','69','86','77'), ('lisi','55','100','88');查询表内容
1
2-- 输出student表中的所有记录
select * from student;
查询结果如下
1 | -- 按条件查询数据 |
查询结果如下
- 修改数据
1
2-- 修改lisi的Math成绩,改为95
update `student` set Math = 95 where Name = 'lisi';
查询到修改结果如下,修改成功
在数据库中刷新,student表中信息也同步修改了
2、Java操作MySQL数据库
(1)使用 JDBC 技术连接 MySQL 数据库
这里用IntelliJ IDEA开发工具新建一个maven的工程连接MySQL,新建成功后首先配置pom.xml文件
1.找MySQL数据库对应的驱动依赖文件
进入maven仓库的官网:https://mvnrepository.com/,搜索mysql接着点击第一个搜索结果
选择自己对应的mysql版本,复制下方的maven依赖代码
不知道自己MySQL版本的可以用DOS命令查看,我的是mysql 8.0.30版本
选择自己安装的mysql版本
这里我自己用的是最新的mysql 8.0.30版本
1 | <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> |
将复制的依赖文件粘贴到pom.xml配置文件中,注意前后要加上
上面的仓库依赖配置好后,就可以进入正式的编程开发了
(2)具体代码实现
新建一个Java文件,连接MySQL数据库并进行操作的基本过程如下,
step1.加载驱动
注意MySQL 8.0 以上版本的数据库连接要使用:com.mysql.cj.jdbc.Driver
1 | //加载JDBC驱动 |
step2.定义用户信息和URL参数
1 | //定义用户信息和URL参数,连接MySQL用 |
step3.连接数据库
1 | //连接数据库,使用驱动管理类;connection就表示数据库 |
上面的3步是对数据库连接的基本条件,不同的是以下几步
step4.创建一个SQL语句对象
1 | //创建一个SQL语句对象,并用statement来接收 |
step5.定义SQL语句
1 | //定义SQL修改语句,插入一条新数据 |
step6.查询执行SQL语句后的结果
1 | //执行查询SQL语句,查看返回结果 |
step7.释放连接
1 | //关闭数据库连接 |
向student表中添加一条记录
这里主要用到的SQL代码如下,
1 | //定义了SQL修改语句,插入一条新数据,并返回查询结果 |
控制台返回的结果:
完整代码:
1 | public class MainActivity { |
获取scofield的English成绩信息
数据库连接的前3步操作一样,这里需要更改查询语句,并返回查询结果。
这里主要用到的SQL代码如下,
1
2//定义SQL查询语句,查询scofield的English成绩
String sql = " select Name,English from student where Name = 'scofield'";
控制台返回的结果:
完整代码:
1 | public class SelectResults { |
三、遇到的问题及解决方案
1、找MySQL连接Java的驱动包
问题描述
参考网络上绝大部分Java操作MySQL的教程,都是使用jar驱动包来操作。
操作教程可参考菜鸟教程上的Java连接MySQL的操作,下载好驱动包后,用添加库的方式导入到对应项目中。最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到 jar 库文件,然后在对应的项目中导入该库文件。尴尬的是进入官网后并没有找到对应自己版本的MySQL驱动包,我用的是8.0.30版本,应该是目前最新的版本,官网并未提供该版本的驱动包,这简直让我蚌埠住了。
解决方案
幸运的是我之前做过Java操作MongoDB数据库连接的案例,导库方式采用的是maven库的依赖文件(在maven官网也可在里面下载jar包,这里更推荐用依赖文件)。想必Java与数据库连接过程大体类似,索性就看了下相关的Java使用maven项目s来操作MySQL的教程,确实可以这样操作。于是就有了前面新建maven工程的方式来连接MySQL。需要注意的是,添加依赖代码时需要加上
和 ,然后刷新一下maven库,否则会出现报错。
2、JDBC中——Class.forName(com.mysql.cj.jdbc.Driver)
MySQL 8.0 以上版本的数据库连接有所不同:
com.mysql.jdbc.Driver
更换为com.mysql.cj.jdbc.Driver
。
若使用以下代码,程序可以返回正确结果,但程序会抛出异常。更改为com.mysql.cj.jdbc.Driver
可以解决。
1 | //加载JDBC驱动 |
对Class.forName(com.mysql.cj.jdbc.Driver)的深入理解,可以参考这篇文章: