📜  JDBC教程(1)

📅  最后修改于: 2023-12-03 15:32:06.354000             🧑  作者: Mango

JDBC教程

简介

JDBC(Java DataBase Connectivity)是Java语言操作数据库的基础API,它提供了一种与关系型数据库进行交互的标准接口,支持操作各种关系型数据库。在实际开发中,JDBC是开发人员编写Java程序与数据库进行交互的重要手段之一。

JDBC驱动程序

在使用JDBC与数据库交互之前,需要安装相应的JDBC驱动程序。JDBC驱动程序是数据库厂商提供的,用于实现JDBC提供的接口,使Java程序能够通过JDBC接口与数据库进行交互。

类型

JDBC驱动程序一般分为四种类型:

  • JDBC-ODBC桥接器驱动
  • 原始(JDBC-Native)API驱动
  • 网络协议驱动
  • 纯Java驱动

其中,第一种驱动方式是通过ODBC桥接器实现JDBC与数据库的交互,而其他三种方式都是直接使用Java程序实现的。

下载

在选择JDBC驱动程序时,需要首先确定所要连接的数据库类型,然后去相应的数据库厂商网站下载对应的JDBC驱动程序。

这里以MySQL为例,MySQL的JDBC驱动程序可以从MySQL官网下载:https://dev.mysql.com/downloads/connector/j/

JDBC连接

在使用JDBC之前,需要先建立与数据库的连接。JDBC连接的步骤一般包括以下三个步骤:

  1. 加载JDBC驱动程序
  2. 获取数据库连接
  3. 关闭数据库连接
加载JDBC驱动程序

在使用JDBC之前,需要先加载对应的JDBC驱动程序。可以使用Java中的Class.forName()方法来加载JDBC驱动程序。例如,要加载MySQL的JDBC驱动程序,可以使用以下语句:

Class.forName("com.mysql.jdbc.Driver");
获取数据库连接

使用JDBC连接数据库时,需要提供数据库URL、用户名和密码。在获取数据库连接时,需要使用DriverManager.getConnection()方法。例如,要连接名为test的MySQL数据库,可以使用以下代码:

String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
关闭数据库连接

使用完JDBC连接后,需要将其关闭以释放资源。可以使用Connection.close()方法来关闭数据库连接。例如:

conn.close();
JDBC操作数据库

在建立好JDBC连接之后,就可以对数据库进行操作了。JDBC提供了一系列API,可以用来对数据库执行增、删、改、查等操作。

Statement

Statement接口用于执行静态SQL语句和存储过程,并返回查询结果。例如,以下代码使用Statement接口执行一条SQL语句并返回查询结果:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");

使用ResultSet接口可以操作查询结果集。例如,以下代码使用ResultSet接口获取查询结果的第一条记录:

if (rs.next()) {
    String name = rs.getString("name");
    int age = rs.getInt("age");
    System.out.println("name:" + name + ",age:" + age);
}
PreparedStatement

PreparedStatement接口是Statement接口的子接口,可以预编译SQL语句,防止SQL注入等安全问题,并提高SQL执行性能。例如,以下代码使用PreparedStatement接口执行一条SQL语句并返回查询结果:

PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE name=?");
pstmt.setString(1, "张三");
ResultSet rs = pstmt.executeQuery();
CallableStatement

CallableStatement接口用于执行存储过程。例如,以下代码使用CallableStatement接口执行一条存储过程:

CallableStatement cstmt = conn.prepareCall("{call adduser(?, ?)}");
cstmt.setString(1, "张三");
cstmt.setInt(2, 20);
cstmt.execute();
事务管理

使用Connection接口提供的方法可以对数据库进行事务管理,例如,以下代码开启了一个事务,并执行了两条SQL语句:

try {
    conn.setAutoCommit(false);

    Statement stmt = conn.createStatement();
    stmt.executeUpdate("INSERT INTO user (name, age) VALUES ('张三', 20)");
    stmt.executeUpdate("UPDATE user SET age=21 WHERE name='张三'");

    conn.commit();
} catch (SQLException e) {
    conn.rollback();
} finally {
    conn.setAutoCommit(true);
}
总结

JDBC提供了Java程序与数据库进行交互的基础API,开发人员可以使用该API进行数据库操作。JDBC连接数据库的步骤包括加载JDBC驱动程序、获取数据库连接和关闭数据库连接。JDBC提供了一系列API,可用来对数据库执行增、删、改、查等操作,并提供了事务管理功能。