当前位置: 移动技术网 > IT编程>数据库>Mysql > DBUtils

DBUtils

2019年08月14日  | 移动技术网IT编程  | 我要评论
  dbutils是jdbc的简化开发工具包。需要导入commons-dbutils-1.6.jar才能够正常使用dbutils工具。
1、dbutils功能简介
   1.queryrunner中提供对sql语句操作的api
   2.resultsethandler接口,用于定义select操作后,怎样封装结果集
   3.dbutils类,它是一个工具类,定义了关闭资源与事务处理的方法
2、queryrunner核心类
   1.update(connection conn ,string sql, object ... params), 用来完成表数据的增加、删除、更新操作。
   2.query(connection conn ,string sql ,resultsethandler<t>rsh, object...params), 用来完成表数据的查询操作.
3、queryrunner实现添加、更新、删除操作
3.1 添加
 1 public void insert(){
 2     try{
 3         //获取一个用来执行sql语句的对象 queryrunner
 4         queryrunner qr = new queryrunner();
 5         string sql = "insert into student(sno,sname,ssex) values (?,?,?)";
 6         object[] params = {"1","张三","男"};
 7         connection conn = jdbcutils.getconnection();
 8         int line = gr.update(conn,sql,params);//用来完成表数据的增加、删除、更新操作
 9         //结果处理集
10         system.out.println("line="+line);
11     }catch(sqlexception e){
12         throw new runtimeexception(e);
13     }
14 }
 
3.2 更新
 1 public void update(){
 2     try {
 3         //创建一个queryrunner对象,用来完成sql语句的执行
 4         queryrunner qr = new queryrunner();
 5         //执行sql语句
 6         string sql = "update student set sname = '李四' where sno=?";
 7         object[] params = {"1"};
 8         connection conn = jdbcutils.getconnection();
 9         int line = qr.update(conn, sql, params);
10         //结果集的处理
11         system.out.println("line="+line);
12     } catch (sqlexception e) {
13         throw new runtimeexception(e);
14     }
15 }
 
3.3 删除
 1 public void delete(){
 2     try {
 3         //创建一个queryrunner对象,用来完成sql语句的执行
 4         queryrunner qr = new queryrunner();
 5         //执行sql语句
 6         string sql = "delete from student where name = ?";
 7         object[] params = {"张三"};
 8         connection conn = jdbcutils.getconnection();
 9         int line = qr.update(conn, sql, params);
10         //结果集的处理
11         system.out.println("line="+line);
12     } catch (sqlexception e) {
13         throw new runtimeexception(e);
14     }
15 }
 
4、queryrunner实现查询操作
· query(connection conn,string sql,resultsethandler<t> rsh,object... params), 用来完成表数据的查询操作。
 
4.1 resultsethandler结果集处理类
 

arrayhandler

将结果集中的第一条记录封装到一个object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

arraylisthandler

将结果集中的每一条记录都封装到一个object[]数组中,将这些数组在封装到list集合中。

beanhandler

将结果集中第一条记录封装到一个指定的javabean中。

beanlisthandler

将结果集中每一条记录封装到指定的javabean中,将这些javabean在封装到list集合中

columnlisthandler

将结果集中指定的列的字段值,封装到一个list集合中

scalarhandler

它是用于单数据。例如select count(*) from 表操作。

maphandler

将结果集第一行封装到map集合中,key 列名, value 该列数据

maplisthandler

将结果集第一行封装到map集合中,key 列名, value 该列数据,map集合存储到list集合

 
4.2 arrayhandler与arraylisthandler查询
  数据库初始值:
  
arrayhandler:将结果集中的第一条记录封装到一个object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值.
 
1 //采用arrayhandler处理结果集
2 public static void arrayhandler()throws sqlexception{
3     queryrunner qr = new queryrunner();
4     string sql = "select* from book ";
5     object[] objects= qr.query(con,sql, new arrayhandler());
6     for (object object : objects) {
7         system.out.print(object+"\t");
8     }
9 }

  

arraylisthandler:将结果集中的每一条记录都封装到一个object[]数组中,将这些数组在封装到list集合中

 1 //采用arraylisthandler处理结果
 2     public static void arraylisthandler()throws sqlexception{
 3         queryrunner qr = new queryrunner();
 4         string sql = "select* from book ";
 5         list<object[]> objects= qr.query(con,sql, new arraylisthandler());
 6         for (object[] object : objects) {
 7             for (object o : object) {
 8                 system.out.print(o+"\t");
 9             }
10             system.out.println("\n");
11         }
12     }

 

4.3  beanhandler与beanlisthandler查询

beanhandler :将结果集中第一条记录封装到一个指定的javabean中。

1 //采用beanhandler处理结果集
2     public static void beanhandler()throws sqlexception{
3         queryrunner qr = new queryrunner();
4         string sql = "select * from book";
5         sort s = qr.query(con,sql,new beanhandler<sort>(sort.class));
6         system.out.println(s);
7     }

 

beanlisthandler :将结果集中每一条记录封装到指定的javabean中,将这些javabean在封装到list集合中

1 //采用beanlisthandler处理结果集
2     public static void beanlisthandler()throws sqlexception{
3         queryrunner qr = new queryrunner();
4         string sql = "select * from book";
5         list<sort> list= qr.query(con,sql,new beanlisthandler<sort>(sort.class));
6         for (sort sort : list) {
7             system.out.println(sort);
8         }
9     }

 

4.4 columnlisthandler与scalarhandler查询

columnlisthandler:将结果集中指定的列的字段值,封装到一个list集合中

 1 //采用columnlisthandler处理结果集
 2     public static void columnlisthandler()throws sqlexception{
 3         queryrunner qr = new queryrunner();
 4         string sql = "select * from book where price=?";
 5         object[] obj ={"89"}; //指定列
 6         list<string> s= qr.query(con,sql,new columnlisthandler<string>(),obj);
 7         for (string s1 : s) {
 8             system.out.println(s1);
 9         }
10     }

 

scalarhandler:它是用于单数据。例如select count(*) from 表操作。

1 //采用scalarhandler处理结果集
2     public static void scalarhandler()throws sqlexception{
3         queryrunner qr = new queryrunner();
4         string sql = "select count(*) from book ";
5         long s = qr.query(con,sql,new scalarhandler<long>());
6         system.out.println(s);
7     }

 

4.5 maphandler和maplisthandler查询

maphandler:将结果集第一行封装到map集合中,key 列名, value 该列数据

//采用maphandler处理结果集
    public static void maphandler()throws sqlexception{
        queryrunner qr = new queryrunner();
        string sql = "select * from book";
        map<string,object> map = qr.query(con,sql,new maphandler());
        for (string key : map.keyset()) {
            system.out.println(key+"...."+map.get(key));
        }
    }

 

maplisthandler:将结果集第一行封装到map集合中,key 列名, value 该列数据,map集合存储到list集合

 //采用maplisthandler处理结果集
    public static void maplisthandler()throws sqlexception{
        queryrunner qr = new queryrunner();
        string sql = "select * from book";
        list<map<string,object>> list = qr.query(con,sql,new maplisthandler());
        for (map<string, object> map : list) {
            for (string s : map.keyset()) {
                system.out.print(s+".."+map.get(s)+"\t");
            }
            system.out.println();
        }
    }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网