上一篇我们讲述了 JDBC ,这一篇实战一下,看看如何使用 JDBC 去连接数据库。这里我们使用 MySQL 数据库。
一、MySQL jar 包引入
上一篇我们说了,每一个数据库厂商都会有自己的一套实现,并且封装成 jar ,提供给我们使用,我们去下载一下这个 MySQL 数据库的 JDBC 实现包。
打开 maven 仓库 https://mvnrepository.com/
然后输入 mysql
选择这个
然后看这个版本,有 8.0x的,有 6.0x的,还有 5.1x 等等,这里因为我的数据库是 8.0.19,所以,我就选择 8.0.19 的版本,然后点击进去
点击下载。下载好之后,留着一会我们会用到。
二、JDBC 操作数据库步骤
JDBC 连接数据库大致分为4步
1. 加载对应的数据库驱动
2. 连接我们要连接的数据库
3. 使用SQL语句进行和数据库互动
4. 关闭数据库连接,释放资源
这四步缺一个都不行,尤其是最后一个,要记得关闭数据库连接,进行资源释放。
三、实操_创建工程
知道了这些之后,我们来操作一下,先打开一下我们的eclipse,然后创建一个普通的 Java 工程,我们就叫 JDBCTest01
然后我们在这个下面创建一个 lib 文件夹 new-Folder
然后把我们的刚刚下载的 jar 包粘贴到 lib 中
这样我们的环境就弄好了。
四、实操_如何在项目中引入 jar
现在我们的项目中有了这个 mysql 的 JDBC 的实现了,但是啊,这样还用不了,我们需要将这个 jar 包添加到我们的项目构建路径中
怎么添加呢?选中这个 jar ,然后鼠标右键,找到 Build Path 然后选择 Add To Build Path
添加好之后就是这样,这样我们就可以使用这个 jar 了。
五、实操_连接数据库
前面这些都准备好之后呢,我们就可以进行连接数据库了,当然,你需要将你本地,或者远程机器上的 MySQL 数据库的服务开启起来,不然到时候连接不上。
1. 加载驱动
我们先创建一个类,叫 JDBCTest01 的类
我们连接数据库,首先是第一步,加载驱动,我们是这么去加载的,我们使用Class类中的一个方法,forName 方法去进行加载。
forName 里面写的参数就是我们这个数据库的驱动类,这个类是 com.mysql.cj.jdbc.Driver,然后我们顺便捕获一下异常,这样我们就将驱动加载好了。
当然啊,顺便说一下,数据库版本的不同,这个驱动类所在的地方也不同,我这里使用的是新版本,所以是在这里,你如果数据库用的以前的 5.7 版本以下,包括 5.7,那你需要下载对应的 jar 然后 修改这个驱动类,之前的都是 com.mysql.jdbc.Driver。
我们可以看一下这个类
这个就是驱动类
2. 连接数据库
连接数据库需要用到几个东西,我来介绍一下
- DriverManager 驱动管理类,主要是用来获取数据库连接的
- Connection 连接接口,主要是用来创建连接,和关闭连接的
我们使用驱动管理这个类获取一个连接
我们呢一般都是使用的最后一个,传入一个 url ,一个用户名,还有一个密码进行获取。
这里的 url 就是我们数据库的连接地址,写法是固定的
jdbc:mysql://主机地址:端口/你要连接的数据库名称
?
useSSL=false
&
serverTimezone=Asia/Shanghai
&
characterEncoding=utf-8
&
autoReconnect=true
以前版本只需要写jdbc:mysql:主机地址:端口/你要连接的数据库名称 即可,但是从 8.0 版本之后,就不行了,需要添加时区这个东西,不然会报错,当然我写的这么多东西是因为要使用,useSSl 就是是否使用SSL连接,我们给一个false,时区就是亚洲上海时间,字符集就是utf-8,最后一个是是否自动从新连接,这里我给的是。然后我们来写一下
写好之后,再来看,user 就是指连接上来的用户,这里我就是用的 root 用户,密码就是 root 用户的密码。
然后我们看一下获取到的连接是个啥
是一个 Connection,我们就用一个这个去接收,当然这里我们去捕获一下异常,来看一下
当然啊,没有异常就说明我们连接上了,如果有就是失败
3. 关闭数据库连接
最重要的一点,我们要记得关闭数据库的连接,去释放资源
判断一下,不为 null 我们就去关闭掉这个连接
我们来运行一下
当然,这里可能有人不相信啊,我这里修改一下我传入的参数,我将这个密码修改成 000000 我们再来看一下
可以看到啊,连接失败,但是没有释放资源啊,这里因为 conn 是一个空的,并没有拿到资源导致。
这样我们连接数据库就完成了,大家多练习一下,下一节我们讲述如何去实际操作数据库了。
有不懂的可以加我 QQ : 2100363119