JDBC(Java Database Connectivity)是一种用于执行数据库操作的Java API。以下是使用JDBC进行增删改查(CRUD)操作的基本步骤和代码示例。
步骤:
- 加载数据库驱动:确保JDBC驱动程序类被加载。
- 建立数据库连接:使用
DriverManager.getConnection()
方法连接到数据库。 - 创建Statement或PreparedStatement对象:用于执行SQL语句。
- 执行SQL语句:使用
executeQuery()
执行查询,使用executeUpdate()
执行更新(包括增删改)。 - 处理结果:对于查询操作,使用
ResultSet
对象来处理返回的数据。 - 关闭资源:关闭
ResultSet
、Statement
或PreparedStatement
以及Connection
对象。
代码示例:
1. 增加(Create)
java">import java.sql.*;public class JdbcInsertExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/yourdatabase";String username = "yourusername";String password = "yourpassword";String sql = "INSERT INTO users (username, password) VALUES (?, ?)";try (Connection conn = DriverManager.getConnection(url, username, password);PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "newUser");pstmt.setString(2, "newPassword");int affectedRows = pstmt.executeUpdate();if (affectedRows > 0) {System.out.println("添加成功!");}} catch (SQLException e) {e.printStackTrace();}}
}
2. 删除(Delete)
java">import java.sql.*;public class JdbcDeleteExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/yourdatabase";String username = "yourusername";String password = "yourpassword";String sql = "DELETE FROM users WHERE username = ?";try (Connection conn = DriverManager.getConnection(url, username, password);PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "userToDelete");int affectedRows = pstmt.executeUpdate();if (affectedRows > 0) {System.out.println("删除成功!");}} catch (SQLException e) {e.printStackTrace();}}
}
3. 修改(Update)
java">import java.sql.*;public class JdbcUpdateExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/yourdatabase";String username = "yourusername";String password = "yourpassword";String sql = "UPDATE users SET password = ? WHERE username = ?";try (Connection conn = DriverManager.getConnection(url, username, password);PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "newPassword");pstmt.setString(2, "existingUser");int affectedRows = pstmt.executeUpdate();if (affectedRows > 0) {System.out.println("修改成功!");}} catch (SQLException e) {e.printStackTrace();}}
}
4. 查询(Query)
java">import java.sql.*;public class JdbcQueryExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/yourdatabase";String username = "yourusername";String password = "yourpassword";String sql = "SELECT id, username, password FROM users WHERE username = ?";try (Connection conn = DriverManager.getConnection(url, username, password);PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "userToQuery");try (ResultSet rs = pstmt.executeQuery()) {if (rs.next()) {int id = rs.getInt("id");String username = rs.getString("username");String password = rs.getString("password");System.out.println("ID: " + id + ", Username: " + username + ", Password: " + password);}}} catch (SQLException e) {e.printStackTrace();}}
}
在这些示例中,我们使用了try-with-resources
语句来自动关闭数据库资源,这是Java 7及以上版本提供的一个特性。如果使用的是Java 6或更早的版本,需要在finally
块中手动关闭这些资源。
请确保根据你的数据库配置替换url
、username
和password
变量的值,以及根据数据库表结构调整SQL语句和结果处理逻辑。此