Java DbUtils的用法,转

DbUtils类

ResultSetHandler 接口
MapListHandler 类  (实现ResultSetHandler 接口)把从数据库中查询出的记录 都 放到List  集合当中, List集合中每一个对象都是Map类型,可以根据这条记录的字段名读出相对应的值.
BeanListHandler 类  (实现ResultSetHandler 接口)把从数据库中的记录 放到List集合中 ,List集合中每一个对象都是一个JavaBean类型的对象,可以根据get 方法得到值
QreryRunner类   执行SQL语名,其中一个参数为以上两种类型的对象

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
/**
 * 该类主要完成对数据库的操作
 * 
 */
public class SqlUtil {
	private static String datasoucename ="java:comp/env/jdbc/exam";
	private  DataSource da;
    private static sqlUtil sqlutil = null;

    public static sqlUtil newInstance()
    {
    	if(sqlutil == null) {
    		sqlutil = new sqlUtil();
    	}
    	return sqlutil;
    }
    
    
    public Connection getConnection() throws SQLException
    {
    	synchronized (da) {
			return da.getConnection();
		}
    }
    
	/**
	 * 构造方法,设置数据源
	 * @param datasoucename
	 */
	private sqlUtil() {
		init();
	}

	
	/**
	 * 初始化数据源的方法
	 */
	private void init() {
		try {
			Context ct = new InitialContext();
			this.da = (DataSource) ct.lookup(datasoucename);
			ct.close();
		} catch (NamingException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 对数据增删改的方法,需要一个object的数组,数据是sql语句的占位符
	 * @param sql
	 * @param pring
	 * @return
	 */
	public boolean update(String sql, Object pring[]) {
		QueryRunner qu = new QueryRunner();
		int i = 0;
		boolean flag = false;
		try {
			i = qu.update(getConnection(),sql, pring);
			if(i>=0){
				flag = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}

		return flag;
	}

	/**
	 * 对数据查找的方法,需要一个objece的数组,数据是sql语句的占位符,ResultSetHandler参数是你要把查询出的数据转换的类型
	 * 可以是一个javabean   (如:new BeanListHandler (JavaBean.class)或:new MapListHandler )
	 * @param sql
	 * @param pring  参数数组可以为空
	 * @param rsh
	 * @return
	 */
	public List query(String sql, Object pring[], ResultSetHandler rsh) {
		QueryRunner qu = new QueryRunner();
		List result = null;
		try {
			result = (List) qu.query(getConnection(),sql, pring, rsh);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}
}

调用:

/**
	 * 删除
	 * @return boolean
	 * @param ItemPool的Id
	 */
	public boolean deteItemPool(String ipId) {
		String sql1 = "delete from ItemPool where ipId =? ";
//指定所需要的参数 数组
		Object[] pring = {ipId};
//执行更新
		boolean result = sql.update(sql1, pring);
		return result;
	}
/**
	 * 根据题库Id查找题库的方法
	 */
	public ItemPool searchItemPoolById(String ipId) {
		String sql1 = "select * from ItemPool where ipId=?";
//指定参数数组
		Object[] pring = {ipId};

		





List list = sql.query(sql1, pring, new BeanListHandler(ItemPool.class));
		ItemPool itempool=(ItemPool)list.get(0);
		return itempool;
	}
原文地址:https://www.cnblogs.com/huangjacky/p/1739865.html