c3p0 queryrunner
时间: 2023-08-06 19:25:58 浏览: 81
C3P0 QueryRunner 是一个基于 Apache Commons DbUtils 的 JDBC 工具类,它提供了一些方便的方法来执行 SQL 查询和更新。它使用了 C3P0 数据库连接池来管理数据库连接,可以有效地提高数据库访问性能和资源利用率。使用 C3P0 QueryRunner 可以大大简化 JDBC 编程的复杂性,同时提高代码的可读性和可维护性。
相关问题
给我用QueryRunner写c3p0的单个查询
好的,以下是使用QueryRunner执行c3p0的单个查询的代码示例:
```java
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
public class Example {
private DataSource dataSource; // 假设已经初始化了c3p0连接池
public void query() {
QueryRunner queryRunner = new QueryRunner(dataSource);
String sql = "SELECT * FROM table WHERE id = ?";
int id = 1; // 假设要查询的id为1
try {
// 使用BeanHandler将查询结果映射为JavaBean对象
TableEntity result = queryRunner.query(sql, new BeanHandler<>(TableEntity.class), id);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代码中,我们首先创建了一个QueryRunner对象,并将c3p0连接池的DataSource对象传入其中。然后定义了一个查询语句,使用占位符`?`表示待查询的id。最后在try-catch语句中调用QueryRunner的query方法执行查询,使用BeanHandler将查询结果映射为JavaBean对象,并输出结果。注意,这里使用了泛型,需要将查询结果映射为TableEntity类的实例。
给我用QueryRunner写c3p0的增删改查数据
好的,以下是使用QueryRunner和c3p0进行增删改查操作的示例代码:
```java
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Demo {
private static ComboPooledDataSource dataSource;
static {
dataSource = new ComboPooledDataSource();
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUser("root");
dataSource.setPassword("123456");
dataSource.setDriverClass("com.mysql.jdbc.Driver");
}
public static void main(String[] args) throws SQLException {
QueryRunner queryRunner = new QueryRunner(dataSource);
// 查询
List<User> userList = queryRunner.query("SELECT * FROM user", new BeanListHandler<User>(User.class));
System.out.println(userList);
// 新增
queryRunner.update("INSERT INTO user (name, age) VALUES (?, ?)", "张三", 20);
// 修改
queryRunner.update("UPDATE user SET age = ? WHERE name = ?", 21, "张三");
// 删除
queryRunner.update("DELETE FROM user WHERE name = ?", "张三");
}
public static class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
}
```
这里使用了c3p0的ComboPooledDataSource来获取数据库连接,并使用QueryRunner来进行数据库操作。以上代码中的User类仅作为示例,你可以根据自己的需求修改。
阅读全文