使用dbutils完成curd操作


dbutils:
是apache组织的一个工具类,jdbc的框架,更方便我们使用
使用步骤:
1.导入jar包(commons-dbutils-1.4.jar)
2.创建一个queryrunner类
queryrunner作用:操作sql语句
构造方法:
new QueryRunner(Datasource ds);    // 这个DataSource的对象引用需要自己创建一个DataSourceUtils工具类,然后直接调用里面的静态方法

3.编写sql
4.执行sql
query(..):执行r操作
update(...):执行cud操作


核心类或接口

QueryRunner:类名
作用:操作sql语句
构造器:
new QueryRunner(Datasource ds);
注意:
底层帮我们创建连接,创建语句执行者 ,释放资源.
常用方法:
query(..):

update(..):


// CURDDemo.java

package com.dbutils.curd;

import java.sql.SQLException;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

import com.utils.DataSourceUtils;

public class CURDDemo {
	@Test
	public void insert() throws SQLException {
		// 1.创建queryrunner类
		QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ;
		
		// 2.编写sql
		String sql = "insert into category values(?,?)" ;
		
		// 3.执行sql
		qr.update(sql, "c201","厨房电器") ;
	}
	
	@Test
	public void update() throws SQLException {
		QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()) ;
		String sql = "update category set cname = ? where cid = ?";
		qr.update(sql,"Tcl","c001") ;
		
	}
	
}


/**
 * DataSourceUtils.java  
 * 为CURDDemo类中QueryRunner函数提供引用参数
 * 并且在底层自动创建连接,创建语句执行者,释放资源
 * 
 */


package com.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DataSourceUtils {

	private static ComboPooledDataSource ds = new ComboPooledDataSource() ;
	
	/**
	 * 获取数据源
	 * @return 连接池
	 */
	
	public static DataSource getDataSource() {
		return ds ;
	}
	
	/**
	 * 获取连接
	 * @return 连接
	 * @throws SQLException
	 */
	public static Connection getConnection() throws SQLException {
		return ds.getConnection() ;
	}
	
	
	/**
	 * 释放资源
	 * @param conn
	 * @param st
	 * @param rs
	 */
	public static void closeResource(Connection conn,Statement st,ResultSet rs) {
		
		closeRs(rs) ;
		closeSt(st) ;
		closeConn(conn) ;
	}
	
	/**
	 *  释放连接
	 * @param conn
	 */
	public static void closeConn(Connection conn) {
		if(conn != null)  {
			try {
				conn.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			conn = null ;
		}
	}
	/**
	 *  释放语句执行者
	 * @param st
	 */
	public static void closeSt(Statement st) {
		if(st != null)  {
			try {
				st.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			st = null ;
		}
	}
	
	/**
	 *  释放结果集
	 * @param rs
	 */
	public static void closeRs(ResultSet rs) {
		if(rs != null)  {
			try {
				rs.close() ;
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			rs = null ;
		}
	}
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值