DBUtils的使用.

本文介绍如何使用DBUtils结合C3P0连接池进行数据库操作,包括查询、插入、更新和删除等基本操作,并展示了批量操作的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用步骤

1.导入jar包   

commons-dbutils-xx.jar

c3p0-xxx.jar

mysql-connector-java-xxxx-bin.jar            

2 .创建QueryRunner对象

QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());

3 .使用query方法执行select语句

package com.wency.dbutils;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;

import com.wency.entity.User;


public class TestDBUtils {
	@Test
	public void testFind() throws SQLException{
		
		//创建QuerRunner对象
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
        List<User> users = qr.query("select * from user",new ResultSetHandler<List<User>>(){

			@Override
			public List<User> handle(ResultSet rs) throws SQLException {
				// TODO Auto-generated method stub
				
				List<User> list=new ArrayList<User>();
				while (rs.next()) {
					User user=new User();
					int id=rs.getInt(1);
					String name=rs.getString(2);
					String pwd=rs.getString(3);
					String email=rs.getString(4);
					user.setId(id);
					user.setPwd(pwd);
					user.setUserName(name);
					user.setEmail(email);
					list.add(user);
				}
				return  list;
			}
			

		});
        
        System.out.println(users);
        
	}
	
	@Test
	public void testSelect2() throws SQLException
	{
		//创建一个QueryRunner对象
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
		//调用qr的Query()方法
		List<User> list = qr.query("select * from user where _id=?",new BeanListHandler<User>(User.class),2);
	    System.out.println(list);
	}
	
	@Test
	public void testInsert() throws SQLException{
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
		int update = qr.update("insert into user(userName,pwd,email) values(?,?,?)","小刚","345555","344536@qq.com");
		System.out.println(update);
		
	}
	
	@Test
	public void testUpdate() throws SQLException{
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
		int update = qr.update("update user set userName=? where _id=?","小美",3);
	}
	
	@Test
	public void testDelete() throws SQLException{
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
		qr.update("delete from user where _id=?","3");
	}
	
	@Test
	public void testBatch() throws SQLException{
		QueryRunner qr=new QueryRunner(C3p0Utils.getDataSource());
		Object[][] params=new Object[10][];
		for (int i = 0; i < params.length; i++) {
			params[i]=new Object[]{"wency","3344","345@454.com"};
		}
		qr.batch("insert into user(userName,pwd,email) values(?,?,?)", params); 
		
	}
}


DbUtils是一个常用的数据库操作工具包,通常用于简化JDBC(Java Database Connectivity)的代码编写,提高数据访问层的封装性和可维护性。它主要用于事务管理、连接池管理和SQL语句的执行。 使用DbUtils的基本步骤如下: 1. **添加依赖**:如果你是在Spring框架中使用,可能已经包含了对DbUtils的依赖;如果不是,你需要将其作为第三方库引入到项目中。 2. **创建DataSource或Connection**:首先需要获取数据库连接,DbUtils提供了一个静态方法`getConnection()`帮助创建并返回连接。 ```java Connection conn = DbUtils.getConnection(dataSource); ``` 3. **处理事务**:DbUtils支持自动提交和回滚事务的功能。例如开启事务: ```java TransactionManager tm = new TransactionManager(); Transaction transaction = tm.getTransaction(conn); ``` 4. **执行SQL查询或操作**:你可以使用`query()`方法执行查询,或者`execute()`方法执行非查询操作(如插入、更新、删除)。 ```java String sql = "SELECT * FROM users WHERE id = ?"; ResultSet rs = DbUtils.query(conn, sql, 1); // 查询 int rowsAffected = DbUtils.executeUpdate(conn, "INSERT INTO users ..."); // 操作 ``` 5. **关闭资源**:完成操作后记得关闭连接、结果集等资源,DbUtils库会自动进行关闭: ```java try { // ... } finally { if (rs != null) { rs.close(); } if (conn != null) { DbUtils.closeSqlConn(conn); } } ``` 6. **释放事务**:如果使用了事务,记得手动提交或回滚: ```java transaction.commit(); // 提交 transaction.rollback(); // 回滚 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值