Apache组件commons的DbUtils的用法实例

本文通过实际案例对比分析了使用Apache Commons DbUtils库进行数据库连接操作的效率与便捷性,指出其在某些场景下可能不如直接编写代码灵活且易用。详细介绍了如何使用DbUtils库进行查询和更新操作,并提供了获取连接实例的具体步骤。

1 代码要连接数据库是可以跑通的,可是本人真心表示这个封装的太垃圾,远不及自己写的顺手,不建议再学一套db连接的方法,这个感觉写的还有点复杂,不好用,不推荐

package com.commons.dbutils;

import java.util.*;
import java.util.logging.*;
import java.sql.*;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.*;

public class DbUtilsTest {

	public static void main(String[] args) throws Exception {
		DbUtilsTest test = new DbUtilsTest();

		for (int i = 0; i < 1; i++) {
			test.testQuery1();
			test.testQuery2();
			test.testUpdate();
		}
	}

	public void testQuery1() {
		try {
			QueryRunner qr = new QueryRunner();
			ResultSetHandler rsh = new ArrayListHandler();
			String strsql = "select * from test1";
			ArrayList result = (ArrayList) qr.query(getConnection(), strsql,
					rsh);
			// System.out.print("");
		} catch (Exception ex) {
			ex.printStackTrace(System.out);
		}
	}

	public void testQuery2() {
		try {
			QueryRunner qr = new QueryRunner();
			ResultSetHandler rsh = new MapListHandler();
			String strsql = "select * from test1";
			ArrayList result = (ArrayList) qr.query(getConnection(), strsql,
					rsh);
			for (int i = 0; i < result.size(); i++) {
				Map map = (Map) result.get(i);
				// System.out.println(map);
			}
			// System.out.print("");
		} catch (Exception ex) {
			ex.printStackTrace(System.out);
		}
	}

	public void testUpdate() {
		try {
			QueryRunner qr = new QueryRunner();
			ResultSetHandler rsh = new ArrayListHandler();
			String strsql = "insert test1(page ,writable ,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')";
			qr.update(getConnection(), strsql);
			// System.out.print("");
		} catch (Exception ex) {
			ex.printStackTrace(System.out);
		}
	}

	private Connection getConnection() throws InstantiationException,
			IllegalAccessException, ClassNotFoundException, SQLException {

		String strDriver = "com.mysql.jdbc.Driver";
		String strUrl = "jdbc:mysql://localhost:3306/test";
		String strUser = "root";
		String strPass = "root";

		Class.forName(strDriver).newInstance();
		return DriverManager.getConnection(strUrl, strUser, strPass);
	}
}


1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写sql语句) 3 可以使用数据源 使用JNDI 数据库连接池等技术来优化性能 重用已经构建好的数据库连接对象 而不像php asp那样 费时费力的不断重复的构建和析构这样的对象 DBUtils包括3个包: org apache commons dbutils org apache commons dbutils handlers org apache commons dbutils wrappers DBUtils封装了对JDBC的操作 简化了JDBC操作 可以少写代码 org apache commons dbutils DbUtils 关闭链接等操作 QueryRunner 进行查询的操作 org apache commons dbutils handlers ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List List中存放的是Object[] BeanHandler :将ResultSet中第一行的数据转化成类对象 BeanListHandler :将ResultSet中所有的数据转化成List List中存放的是类对象 ColumnListHandler :将ResultSet中某一列的数据存成List List中存放的是Object对象 KeyedHandler :将ResultSet中存成映射 key为某一列对应为Map Map中存放的是数据 MapHandler :将ResultSet中第一行的数据存成Map映射 MapListHandler :将ResultSet中所有的数据存成List List中存放的是Map ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object org apache commons dbutils wrappers SqlNullCheckedResultSet :对ResultSet进行操作 改版里面的值 StringTrimmedResultSet :去除ResultSet中中字段的左右空格 Trim ">1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写sql语句) 3 可以使用数据源 使用JNDI 数据库连接池等技术来优化性能 重用已经构建好的 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静山晚风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值