数据库操作之DBUtils
程序员文章站
2022-03-10 14:42:20
概述 DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。 DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 DBUtils三个核心功能介绍 QueryRunner中提供对sql语句操作的API ResultSetHandler接口,用于定义select操作后, ......
概述
dbutils是java编程中的数据库操作实用工具,小巧简单实用。
dbutils封装了对jdbc的操作,简化了jdbc操作,可以少写代码。
dbutils三个核心功能介绍
- queryrunner中提供对sql语句操作的api
- resultsethandler接口,用于定义select操作后,怎样封装结果集
- dbutils类,它就是一个工具类,定义了关闭资源与事务处理的方法
queryrunner核心类
- queryrunner(datasourcr ds),提供数据源(连接池),dbutils底层自动维护连接connection
- update(string sql,obj...params),执行更新数据
- query(string sql,resultsethandler<t>rsh,object...panrams),执行查询
resultsethandler结果集处理类
arrayhandler:适合取1条记录,把结果集中的第一行数据转成对象数组。
arraylisthandler:适合取多条记录,把结果集中的每一行数据都转成一个对象数组,再存放到list中。
beanhandler:将结果集中的第一行数据封装到一个对应的javabean实例中(把每条记录封装成对象,适合取一条记录)
beanlisthandler:将结果集中的每一行数据都封装到一个对应的javabean实例中,存放到list里。//重点
maphandler:将结果集中的第一行数据封装到一个map里,key是列名,value就是对应的值。//重点
maplisthandler:将结果集中的每一行数据都封装到一个map里,然后再存放到list
columnlisthandler:将结果集中某一列的数据存放到list中。
keyedhandler(name):将结果集中的每一行数据都封装到一个map里(list<map>),再把这些map再存到一个map里,其key为指定的列。
scalarhandler:将结果集第一行的某一列放到某个对象中。//重点
package com.oterman.dbutils; import java.sql.sqlexception; import java.util.list; import java.util.map; import org.apache.commons.dbutils.queryrunner; import org.apache.commons.dbutils.handlers.arrayhandler; import org.apache.commons.dbutils.handlers.arraylisthandler; import org.apache.commons.dbutils.handlers.beanhandler; import org.apache.commons.dbutils.handlers.beanlisthandler; import org.apache.commons.dbutils.handlers.maphandler; import org.apache.commons.dbutils.handlers.maplisthandler; import org.apache.commons.dbutils.handlers.scalarhandler; import org.junit.test; import com.mchange.v2.c3p0.combopooleddatasource; /** * 该程序介绍resultsethandler的各个实现类; * @author 大蘑菇 * */ public class rshandlerdemo { //--7.scalarhandler:将查询的结果的第一行的某一列放到一个对象中;精确定位到某个值; @test public void query7() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); string name=(string)runner.query("select * from account",new scalarhandler(2)); system.out.println(name); } //--6.maplisthandler:将查询的结果的每一行存入到一个map中,键为列名,值为各列值;然后再将map存入list中; @test public void query6() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); list<map<string,object>> map=runner.query("select * from account",new maplisthandler()); system.out.println(map); } //--5.maphandler:将查询的结果的第一行存入到一个map中,键为列名,值为各列值; @test public void query5() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); map<string,object> map=runner.query("select * from account",new maphandler()); system.out.println(map); } //--4.beanlisthandler:将查询的结果的每一行封装到一个javabean对象中,然后再将这些对象存入list中; @test public void query4() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); list<account> list=runner.query("select * from account",new beanlisthandler<account>(account.class)); system.out.println(list); } //--3.beanhandler:将查询的结果的第一行封装到一份javabean对象中; @test public void query3() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); account account=runner.query("select * from account",new beanhandler<account>(account.class)); system.out.println(account); } //--2.arraylisthandler:将查询的结果的每一行放到一个数组中,然后再将数组放到集合中; @test public void query2() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); list<object[]> list=runner.query("select * from account",new arraylisthandler()); system.out.println(list); } //--1.arrayhandler:将查询的结果的第一行放到一个数组中 @test public void query1() throws sqlexception{ queryrunner runner=new queryrunner(new combopooleddatasource()); object[] array=runner.query("select * from account",new arrayhandler()); system.out.println(array); } }
2018-10-15
上一篇: js内存泄漏场景、如何监控及分析详解
下一篇: Django的认证系统—auth模块