目录
引言
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建 更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何 来访问数据库的[应用程序接口](,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
一,基本概念
JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
执行流程:
- 连接数据源,如:数据库。
- 为数据库传递查询和更新指令。
- 处理数据库响应并返回的结果。
二,常用操作步骤
第一步:添加依赖(使用maven)/添加jar包(不使用maven)
使用maven:
java
<!--mysql 8.1.0.com.mysql/mysql-connector-j -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
不使用maven:
注意:
- 添加的jar包和依赖要与数据库版本一致。
- 依赖与jar包均可在maven中央仓库下载。
第二步:加载驱动
java
//旧版本驱动名称
Class.forName("com.mysql.jdbc.Driver");
//新版mysql jdbc驱动 兼容旧的mysql数据库
Class.forName("com.mysql.cj.jdbc.Driver");
第二步:建立数据库连接
java
//2.建立数据库连接(localhost主机 3306端口 root账号 密码是默认空的,所以没有写)
//Connection conn = DriverManager.getConnection("jdbc:mysql:/dbok?user=root");
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbok?user=root&password=&serverTimezone=PRC&useUnicode=true&charsetEncoding=utf8&useSSL=true");
Connection conn = DriverManager.getConnection("jdbc:mysql:/dbok", "root", "");
第三步:根据连接获取语句对象,来执行sql语句命令
java
//根据连接获取语句对象,来执行sql语句命令
PreparedStatement pst = conn.prepareStatement("show databases");
第四步:语句查询结果对象 结果为集合
java
//语句查询结果对象 结果为集合
ResultSet rs = pst.executeQuery();
第五步:遍历结果集
java
//5.遍历结果集 输出结果
while (rs.next()) {
System.out.println(rs.getString(1));
}
第六步:关闭打开的相关资源
java
//6.关闭打开的相关资源
rs.close();
pst.close();
conn.close();
三,数据库连接并执行SQL语句
java
public class DbDemo {
@Test
void m1() {
try {
//1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.建立数据库连接
//Connection conn = DriverManager.getConnection("jdbc:mysql:/dbok?user=root");
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbok?user=root&password=&serverTimezone=PRC&useUnicode=true&charsetEncoding=utf8&useSSL=true");
Connection conn = DriverManager.getConnection("jdbc:mysql:/dbok", "root", "");
System.out.println("连接成功");
//3.根据连接获取语句对象,来执行sql语句命令
PreparedStatement pst = conn.prepareStatement("show databases");
//4. 语句查询结果对象 结果集
ResultSet rs = pst.executeQuery();
//5.遍历结果集 输出结果
while (rs.next()) {
System.out.println(rs.getString(1));
}
//6.关闭打开的相关资源
rs.close();
pst.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出结果: