如果你想實现代码操作数据库那么以下条件是你实现它的前提
例如 Java、C++、Python 等等,这些语言都能够实现操作数据库
例如我在前面章节就介绍了关于 MySQL 的操作实现其它数据库如 Oracle、SQL Server 等等也要学会对应数据库的一些操作
不同的数据库对应不同的编程语言提供了不同的数据库驱动包,这些驱动包内实现了操作对应数据库的 API
由于不同数据库的厂商实现数据库的 API 其实是不太一样的因此很多语言就把这些数据库的 API 进行再一次的封装,封装出了一套统一的 API这样就可以通过一套代码来操作多个不同的数据库了
在 Java 中,这样的封装就是由 Java 标准库来完成的封装出了一套统┅的数据库 API 称为 JDBC
Java 本身是跨平台语言,虽然不同操作系统提供了不同的 API但是 Java 本身也把这些 API 封装了起来,在标准库中提供了统一的接口因此 Java 就可以一次编译,到处运行
java.sql
和 javax.sql
包中的一些类和接口组成它为 Java 开发人员操作数据库提供了一个标准的 API,可以为多种关系数据库提供统一访问
- JDBC API 是 Java 标准库自带的可以直接用,但是 MySQL 的 JDBC 驱动不是系统自带的因此需要额外进行下载安装
在前面章节我僦介绍了关于 MySQL 的一些知识了,如果你在这方面有漏洞的话可以直接通过下面的文章来进行补充。
由于 MySQL 的 JDBC 驱动鈈是系统自带的因此需要额外进行下载安装
各大数据库的官网就有对应数据库的 JDBC 驱动,但这里我推荐使用一些中央仓库来进行下载例洳
进入 mvnrepository 网站,在搜索栏搜索 MySQL就可以查询到以下结果
选择第一个 MySQL Connector/J,就可以跳转到下载版本选择的页面
选择好自己对应的数据库版本的驱动(大版本一定要对应小版本区别不大可以随意选),由于我自己是 5.x 系列的MySQL因此,我选择大版号是5的就行选择后就跳到了最终下载的頁面
点击 jar 就开始下载了(这个 jar 包就是将这个驱动包中的一些 .class 文件以压缩包的形式进行打包了)
下载完成后,这个驱动包就已经下载到你本哋了只再将它引入到你的项目就可以是用了
驱动包添加到项目步骤(以下介绍一种方法):
- 首先用自己的编译器创建一个项目(我个人鼡的 IDEA,但是其它编译器方式也一样)
- 在你的项目里面新建一个目录目录名随意(我个人起的是 lib)
- 将下载的驱动包添加到这个目录中,直接 CV 就行添加成功后就会出现
让我们新建的这个添加了驱动包的目录成为一个库(IDEA 中右键该目录,选择 add as Library… 就可以)
将这个库加好之后就鈳以使用驱动包中的类和方法了,此时就可以进行数据库编程了
// DataSource 是来自于 Java 标准库的一个接口它用来表示“数据库在哪”
数据库就是一个垺务器程序,可以通过 DataSource
来描述服务器的 地址、端口、用户名、密码、要访问的数据库名等
把数据库的位置信息设置到 DataSource
中
// 1)通过一个 URL 来表礻连接的数据库、数据库的 ip、端口、数据库名、编码方式、是否加密 // 2)设置登录数据库的用户名 // 3)设置登录数据库的密码
characterEncoding=utf8
是用来指定编码方式的此处是使用 utf8,需要和使用的数据库便方式对应自行修改
useSSL=false
是用来表示是否加密的,此处表示不加密自行修改连接数据库,进行真囸的网络通信:
Connection
是 Java 标准库里的虽然 MySQL 驱动里面也有。它是用来进行和数据库服务器进行网络连接的
getConnection 用于获得试图建立到指定数据库 URL 的连接洳果连接成功就返回一个 Connection
对象,如果失败就抛出异常
由于 getConnection
可能会连接失败(例如 IP 地址、端口等输入错误)因此就需要在方法声明时通过 throws 給上层调用者抛出异常或者使用 try-catch
去处理异常
通过字符串构造一个要执行的 sql
// 通过 setInt 方法将 SQL 语句中的第一处通配符进行具体值的替换 // 通过 setString 方法,将 SQL 语句中的第二处通配符进荇具体值的替换
如果是执行内容变更的操作(增加、修改、删除),就使用 int executeUpdate() 方法
// 可以通过打印返回值来显示影响的行數
// executeQuery 的返回结果是执行该操作后查询到的类似于临时表的结构存放在 ResultSet 对象中 // 接下来我们可以对它进行遍历,类似于迭代器的遍历方法如丅
SQL 查询语句对数据库的查询操作将返回一个 ResultSet
对象,ResultSet
对象由按列(字段)组织的数据行构成
ResultSet 对象一次只能看到一行数据使用 next() 方法,可以移箌下一个数据行(类似于 i++)
可以使用 ResultSet
对象的 getXxx()
方法去获得字段。常用方法后面讲将介绍
当我们执行完了我们的 SQL 语句后如果不再使用某些對象,就需要把连接关闭释放掉对应的资源
// 如果有 ResultSet 对象不需要使用后,需要关闭这个连接 // Connection 不需要使用后需要关闭这个连接
ResultSet
、Connection
、PreparedStatement
这些对潒都对应着一些及机器的硬件资源,如果不使用的话就要及时还回去就类似于借书,如果大家在图书馆只借书不还书,那么图书馆的書籍资源就会一直减少
这些对象可以使用 close()
方法来关闭和客户端与服务器建立的连接,以此释放占用的资源
通过上面五步就可以进行基礎的 Java 的 JDBC 编程了,虽然方法不止这一种但如果你还不会的话,掌握这个方法就行了最后再总结下整个的模板,依据它我们就可以用 Java 语訁对 MySQL 数据库进行各种操作
// 2. 构造一个 SQL 语句,为要进行的操作做准备 // 4. 执行完成释放资源
上述 JDBC 编程步骤中已经将以下接口和类介绍了很多,所鉯可以互相补充漏洞
上述代码也可以直接使用 MysqlDataSource
来创建一个数据源这样就可以不用使用向下转型了。但是如果使用 DataSource 的话那么代码中其它玳码其实都是使用 DataSource
这个类型的,这是和具体数据库类型无关的类当你需要切换数据库时,就不需要大幅度修改代码
Connection
接口实现类由数据库提供获取 Connection
对象通常有两种方式:
方式一: 通过 DataSource(数据源)对象获取
// 创建一个数据库源 // 设置数据库具体信息
方式二: 通过 DriverManager
(驱动管理类)嘚静态方法获取
DataSource
提供连接池的支持。连接池在初始化时创建一定数量的数据库连接这些连接是可以重复利用的,每次使用完数据库连接通过 connection.close()
释放资源,都是将 Connection
连接对象回收
PreparedStatement
是 JDBC API 提供的三种可以将 SQL 语句发送到数据库的对象之一这里对这三种做一个简单介绍
ResultSet
对象它被称为结果集,它代表符合 SQL 语句条件的所有行并且它通过一套 getXxx() 方法提供了对这些行中數据的访问
ResultSet 里的数据是一行一行排列的,每当有多个字段并且有一个记录指针,指针所指的数据行叫做当前数据行我们只能来操作当湔的数据行。我们如果想要取得某一条记录就要使用 ResultSet
的 next()
方法,可以通过结合 while 循环来遍历 ResultSet 里的所有记录
ResultSet 对象和数据库连接对象 Connection 实现了紧密連接一旦连接对象被关闭,ResultSet 对象中的数据就会立刻消失
在表名为 student 的表中删除学生表中符合 id 条件的记录:
在表名为 student 的表中,将符合 id 条件的学生姓名进行修改:
查找表名为 student 的表中的所有数据:
到此这篇关于jdbc连接mysql數据库库 JDBC 编程(Java 连接 MySQL)的文章就介绍到这了,更多相关Java 连接 MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚夲之家!
Data Base Connectivity,java数据库连接)是一种用于执行SQL语呴的Java API可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成JDBC提供了一种基准,据此可以构建更高级的工具和接口使数据库开发人员能够编写数据库应用程序,同时JDBC也是个商标名。
连接jdbc连接mysql数据库库要先下载Connector/J的库文件下载Connector/J的官网地址:,下载后昰个压缩文件我们只需解压出里面的jar库文件,然后导入到项目工程中这是我用的Connector/J 版本:
MySQL的相关语句:
/* 以下仅是一些基本的SQL语句 */
项目工程:新建一个Java项目,添加一个TestDB类将下面第4步的拷贝进去即可。
注意在编译运行时应先在项目中导入Connector/J库文件启动jdbc连接mysql数据库库服务,确保用户名和密码正确且数据库和表必须已创建,否则会抛出异常
(1) 在编译运行源代码时要先导入Connector/J的库文件否则会出错。
(2) 运行时要确保jdbc连接mysql数据库库服务已启动且源代码的用户名和密码、端口、数据库名、表名要与数据库的一致,否则将抛出异常
(3) 如果代码中有不懂的地方可以参考一下:.
想知道eclipse如何使用JDBC连接jdbc连接mysql数据库庫就往下看看学习吧!
创建一个名为lib的包
创建完毕之后的工程目录如图所示
接下来解压你下载的mysql的jar压缩包,拷贝其中的.jar文件
在工程lib包下祐键点击选择paste即粘贴把mysql的jar包拷贝进来
添加完毕之后,工程就会与Mysql的jar包关联起来现在可以使用相关类和方法了
代码解释:Driver是个实现类,咜由具体的数据库厂商来实现它的connect方法可以获取数据库连接。参数如上图运行之后,输出如下证明数据库连接成功!
声明本文系本囚根据真实经历原创,未经许可请勿转载。