关于commons-dbutils-1.6.jar架包的浅层学习

在最基层查询数据的时候,我们通常用的则是Statament,这个就是将sql语句直接发给sql数据库,当外界发生变化的时候,很容易影响结果,很容易受到占位符的影响。

于是就产生了进化版本,使用Preprastament替代statemnet,这个则是预编译的意思。直接则是将sql语句缓存起来,加入其他的占位符,外界也没有办法影响到预编译的结果。
可以说,Preprastament是Statament升级后的产物。查询的结果使用ResultSet结果

至于今天说的这个架包commons-dbutils-1.6.jar,里面主要是一种查询方法,但是这个工具的优点就是可以将数据整理成各种结构。
QueryRunner queryRunner=new QueryRunner();//直接与数据库沟通交流的主要方法
,里面对PreparedStatement方法进行了包装,根据数据结果,选择对应的方法,可以将数据结果打包成各种不通的数据结构,是使用框架的时候必备的框架。
1.4.3ArrayHandler与ArrayListHandler查询
ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值
public class ArrayHandlerDemo {
@Test
public void method(){
try {
//获取QueryRunner对象
QueryRunner qr = new QueryRunner();
//执行SQL语句
String sql = “SELECT * FROM zhangwu”;
Object[] params = {};
Connection conn = JDBCUtils.getConnection();
Object[] objArray = qr.query(conn, sql, new ArrayHandler(), params);
//结果集的处理
System.out.println( Arrays.toString(objArray) );

		conn.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

}
ArrayListHandler:将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
public class ArrayListHandlerDemo {
@Test
public void method(){
try {
//获取QueryRunner对象
QueryRunner qr = new QueryRunner();
//执行SQL语句
String sql = “SELECT * FROM zhangwu WHERE money>?”;
Object[] params = {2000};
Connection conn = JDBCUtils.getConnection();
List<Object[]> list = qr.query(conn, sql, new ArrayListHandler(), params);
//结果集的处理
for (Object[] objArray : list) {
System.out.println( Arrays.toString(objArray) );
}

		conn.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

}
1.4.5ColumnListHandler与ScalarHandler查询
ColumnListHandler:将结果集中指定的列的字段值,封装到一个List集合中
public class ColumnListHandlerDemo {
@Test
public void method(){
try {
//获取QueryRunner对象
QueryRunner qr = new QueryRunner();
//执行SQL语句
String sql = “SELECT name FROM zhangwu WHERE money>?”;
Object[] params = {2000};
Connection conn = JDBCUtils.getConnection();
List list = qr.query(conn, sql, new ColumnListHandler(), params);
//结果集的处理
for (String str : list) {
System.out.println(str);
}

		conn.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

}
ScalarHandler:它是用于单数据。例如select count(*) from 表操作。
public class ScalarHandlerDemo {
@Test
public void method(){
try {
//获取QueryRunner对象
QueryRunner qr = new QueryRunner();

		//执行SQL语句
		String sql = "SELECT MAX(money) FROM zhangwu";
		Object[] params = {};
		Connection conn = JDBCUtils.getConnection();
		Double max = qr.query(conn, sql, new ScalarHandler<Double>(), params);
		//结果集的处理
		System.out.println("max=" + max);
		
		conn.close();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值