联合两张表完成增删改查java代码
时间: 2023-07-09 07:07:01 浏览: 116
假设我们有两个表:`users`和`orders`,`users`表中存储用户信息,`orders`表中存储订单信息,两个表之间通过`user_id`字段进行关联。
以下是一个简单的增删改查Java代码示例:
```java
import java.sql.*;
public class Main {
// 定义数据库连接信息
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/mydatabase";
static final String USER = "root";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开连接
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
stmt = conn.createStatement();
String sql = "SELECT * FROM users";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}
// 插入数据
sql = "INSERT INTO orders (user_id, total_price) VALUES (1, 100)";
stmt.executeUpdate(sql);
// 更新数据
sql = "UPDATE users SET email='new_email@example.com' WHERE id=1";
stmt.executeUpdate(sql);
// 删除数据
sql = "DELETE FROM orders WHERE id=1";
stmt.executeUpdate(sql);
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
```
在这个示例中,我们使用`java.sql`包中的`Connection`和`Statement`类来执行SQL查询、插入、更新和删除操作。我们首先定义了数据库连接信息和驱动程序,然后打开连接并执行一个SELECT查询。在处理结果集后,我们插入了一个新订单,更新了用户的电子邮件地址,并删除了一个订单。
需要注意的是,在实际应用程序中,我们应该使用预处理语句和绑定变量来避免SQL注入攻击。此外,我们也应该使用ORM框架来简化数据库访问过程。
阅读全文