📅  最后修改于: 2023-12-03 15:02:07.352000             🧑  作者: Mango
JDBC(Java Database Connectivity)是Java程序员操作数据库的标准API。本文将介绍JDBC代码的基本结构和使用方法。
JDBC代码基本包括以下步骤:
下面是一个例子:
import java.sql.*;
public class JdbcDemo {
public static void main(String[] args) throws Exception {
// 加载并注册MySQL的JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立与数据库的连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行SQL语句并获取结果集
ResultSet rs = stmt.executeQuery("SELECT * FROM student");
// 处理结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("id=" + id + ", name=" + name + ", age=" + age);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
}
}
此例子实现了连接MySQL数据库,查询student表中的数据,并输出结果。
Connection对象代表与数据库的连接。可以使用DriverManager.getConnection()方法获得Connection对象。例如:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
Statement对象用于向数据库发送SQL语句并执行。可以使用Connection.createStatement()方法获得Statement对象。例如:
Statement stmt = conn.createStatement();
PreparedStatement对象与Statement对象类似,但在执行同一个SQL语句时可以多次使用,从而提高效率。可以通过Connection.prepareStatement()方法获得PreparedStatement对象。例如:
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE id = ?");
pstmt.setInt(1, 1);
ResultSet rs = pstmt.executeQuery();
CallableStatement对象用于执行带有参数的存储过程,并返回一个结果。可以通过Connection.prepareCall()方法获得CallableStatement对象。例如:
CallableStatement cstmt = conn.prepareCall("{CALL my_procedure(?, ?, ?)}");
cstmt.setInt(1, 1);
cstmt.setString(2, "Jack");
cstmt.setInt(3, 18);
ResultSet rs = cstmt.executeQuery();
ResultSet对象代表SQL语句执行后返回的结果集。可以通过Statement.executeQuery()方法或PreparedStatement.executeQuery()方法获得ResultSet对象。例如:
ResultSet rs = stmt.executeQuery("SELECT * FROM student WHERE id = 1");
while (rs.next()) {
int age = rs.getInt("age");
String name = rs.getString("name");
System.out.println("name=" + name + ", age=" + age);
}
以上就是一个简单的JDBC代码介绍。JDBC的使用方法和细节还有很多,需要不断深入学习和实践。