用C3p0+DBUtils实现用户注销功能
时间: 2024-05-16 17:18:29 浏览: 93
首先,需要在数据库中创建一个名为 `user` 的表,包含 `id` 和 `username` 两个字段。
接下来,可以使用以下代码实现用户注销功能:
```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class UserLogout {
private static DataSource ds = new ComboPooledDataSource(); // 使用C3p0连接池
private static QueryRunner qr = new QueryRunner(ds); // 使用DBUtils工具类
public static void logout(int userId) throws SQLException {
// 获取数据库连接
Connection conn = ds.getConnection();
try {
// 开启事务
conn.setAutoCommit(false);
// 构造SQL语句
String sql = "DELETE FROM user WHERE id = ?";
// 执行SQL语句
qr.update(conn, sql, userId);
// 提交事务
conn.commit();
} catch (SQLException e) {
// 回滚事务
conn.rollback();
throw e;
} finally {
// 关闭数据库连接
conn.close();
}
}
}
```
在上述代码中,首先通过 `ComboPooledDataSource` 创建一个数据源对象 `ds`,然后使用 `QueryRunner` 工具类来执行 SQL 语句。
在 `logout()` 方法中,首先获取数据库连接,然后将自动提交事务关闭,接着构造 SQL 语句并执行,最后提交或回滚事务,关闭数据库连接。
使用时,只需调用 `UserLogout.logout(userId)` 方法即可实现用户注销功能。
阅读全文