📅  最后修改于: 2023-12-03 15:16:38.996000             🧑  作者: Mango
JDBC(Java Database Connectivity)是一个Java API,用于连接和操作各种类型的关系型数据库,以便在Java程序中进行数据管理。JDBC由Sun Microsystems提供,它是Java EE规范的一部分。其中,JDBC驱动程序起到关键作用,它连接Java应用程序和具体的关系型数据库。
JDBC驱动程序根据其实现方式可以分为四种类型,分别是:
在这里,我们主要介绍JDBC的类型 2 驱动程序。
使用类型 2 驱动程序连接数据库的基本步骤包括以下几个方面:
下面是一个使用类型 2 驱动程序连接MySQL数据库,并进行增、删、改、查操作的示例代码:
import java.sql.*;
public class MySQLJdbcExample {
public static void main(String[] args) {
// 加载驱动程序
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "root";
// 建立连接
try (Connection conn = DriverManager.getConnection(url, user, password)) {
// 执行插入操作
String sqlInsert = "insert into student(id, name, age) values(?, ?, ?)";
try (PreparedStatement stmtInsert = conn.prepareStatement(sqlInsert)) {
stmtInsert.setInt(1, 1);
stmtInsert.setString(2, "张三");
stmtInsert.setInt(3, 18);
stmtInsert.executeUpdate();
}
// 执行更新操作
String sqlUpdate = "update student set name = ? where id = ?";
try (PreparedStatement stmtUpdate = conn.prepareStatement(sqlUpdate)) {
stmtUpdate.setString(1, "李四");
stmtUpdate.setInt(2, 1);
stmtUpdate.executeUpdate();
}
// 执行删除操作
String sqlDelete = "delete from student where id = ?";
try (PreparedStatement stmtDelete = conn.prepareStatement(sqlDelete)) {
stmtDelete.setInt(1, 1);
stmtDelete.executeUpdate();
}
// 执行查询操作
String sqlSelect = "select * from student where age >= ? and age <= ?";
try (PreparedStatement stmtSelect = conn.prepareStatement(sqlSelect)) {
stmtSelect.setInt(1, 18);
stmtSelect.setInt(2, 20);
try (ResultSet rs = stmtSelect.executeQuery()) {
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age"));
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
类型 2 驱动程序是一个纯Java驱动程序,不需要在客户端安装额外的软件,通过Java本地方法实现,可以在多个平台上运行,直接和底层数据库进行通信,因此性能较好。使用类型 2 驱动程序连接数据库的基本步骤包括加载驱动程序、建立连接、执行SQL语句和处理结果。