dbutils
<dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.7</version> </dependency>
dbutils它是对JDBC的简单封装,极大简化jdbc编码的工作量
DbUtils类
提供了关闭连接,装载JDBC驱动,回滚提交事务等方法的工具类
QueryRunner类
该类简化了SQL查询,配合ResultSetHandler使用,可以完成大部分的数据库操作,重载了许多的查询,更新,批处理方法。大大减少了代码量
ResultSetHandler接口
该接口规范了对ResultSet的操作,要对结果集进行什么操作,传入ResultSetHandler接口的实现类即可。
-
ArrayHandler:把结果集中的第一行数据转成对象数组。
-
ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
-
BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
-
BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
-
ColumnListHandler:将结果集中某一列的数据存放到List中。
-
KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
-
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
-
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
-
ScalarHandler 将ResultSet的一个列到一个对象中。
使用代码
//创建 dataSource MysqlDataSource mysqlDataSource=new MysqlDataSource(); mysqlDataSource.setServerName("host"); mysqlDataSource.setDatabaseName("dbName"); mysqlDataSource.setUser("user"); mysqlDataSource.setPassword("password"); //创建queryRunner QueryRunner queryRunner=new QueryRunner(mysqlDataSource); //无占位符的查询语句 String sql1="SELECT * FROM user WHERE id=1"; //使用map 接收查询结果 MapHandler Map<String,Object> map=queryRunner.query(sql1,new MapHandler()); for(Map.Entry<String,Object> entry:map.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue().toString()); } //有占位符的查询语句 String sql2="SELECT * user WHERE age=?"; //使用List<Map> 接收查询结果 MapListHandler List<Map<String,Object>> mapList=queryRunner.query(sql2,new MapListHandler(), "10"); for(Map<String,Object> map1:mapList){ for(Map.Entry<String,Object> entry:map1.entrySet()){ System.out.println(entry.getKey()+"="+entry.getValue().toString()); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具