Java数据库的操作——DBUtils工具类结果集处理的方式有几种?

本文介绍了DBUtils工具类在Java编程中简化数据库操作的方法,包括其核心组件QueryRunner类、ResultSetHandler接口及DBUtils类的使用。通过具体示例展示了如何利用DBUtils进行高效的数据库查询。

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

DBUtils工具类介绍

DBUtils是java编程中的数据库操作实用工具,小巧简单使用;

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码;

DBUtils就是JDBC的简化开发工具包。需要导入common-dbutils-xx.jar才能够正常使用DBUtils工具。

三个核心类

QueryRunner类

ResultSetHandler接口

DBUtils类

DBUtils工具类处理结果集的方式

QueryRunner类实现查询操作

ResultSetHandler 结果集处理类

  1. ArrayHandler
    将结果集中的第一条记录封装到一个Object[ ] 数组中,数组中的每一个元素就是这条记录中的每一个字段的值。
  2. ArrayListHandler
    将结果集中的每一条记录都封装到一个Object[ ] 数组中,再将这些数组封装到List集合中。
  3. BeanHandler
    将结果集中第一条记录封装到一个指定的JavaBean中。
  4. BeanListHander
    将结果集中每一条记录封装到指定的JavaBean中,再将这些JavaBean封装到List集合中。
  5. ColumnListHandler
    将结果集中指定的列的字段值,封装到一个List集合中。
  6. ScalarHandler
    用于单数据。例如 select count(*) from 操作。
  7. MapHandler
    将结果集第一行封装到Map集合中,key 列名,value 该列数据。
  8. MapListHandler
    将结果集第一行封装到Map集合中,key 列名,value 该列数据,在将Map集合存储到List集合中。

代码示例

public class QueryRunnerDemo{
	private static Connection con=JDBCUtils.getConnection();
	public static void main(String[] args) throws SQLException{
	QueryRunner qr=new QueryRunner();
	String sql="SELECT * FROM sort";
	//调用方法query执行查询
	//返回对象数组,存储到List
	List<Object[]> result=qr.query(con,sql,new ArrayListHandler());
	//集合的遍历
	for(Object[] objs: result){
		//遍历对象数组
		for(Object obj:objs){
			System.out.print(obj+" ");
		}
		System.out.println();	
	}
	}
}




package com.hexiang.utils.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.log4j.Logger; public class DBConnection { /** * 获得与数据库的连接 * * @param path * @return Connection */ public static Connection getConn(String classDriver, String url, String user, String pwd) { try { Class.forName(classDriver); return DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(DataSource dataSource) { try { return dataSource.getConnection(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(String jndiName) { try { Context ctx; ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/" + jndiName); return dataSource.getConnection(); } catch (NamingException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } public static Connection getConn(Properties properties) { try { String driver = properties.getProperty("jdbc.driverClassName"); String url = properties.getProperty("jdbc.url"); String user = properties.getProperty("jdbc.username"); String password = properties.getProperty("jdbc.password"); Class.forName(driver); return DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } catch (SQLException ex) { ex.printStackTrace(); } return null; } /** * oracle连接 * * @param path * @return Connection */ public static Connection getOracleConn(String
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值