java----DBUtils知识点补充

dbutils 只是帮我们简化了CRUD 的代码, 但是连接的创建以及获取工作。 不在他的考虑范围

QueryRunner主要是这个类

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBUtilsDemo1 {
    //dbutils 只是帮我们简化了CRUD 的代码, 但是连接的创建以及获取工作。 不在他的考虑范围
    //QueryRunner主要是这个类
    public static void main(String[] args) throws SQLException {
      //本部分演示QueryRunner类的增加,删除,更新
     //结合C3p0的配置文件的使用方式,直接一行代码获取连接
     QueryRunner queryRunner=new QueryRunner(new ComboPooledDataSource());
     
     //增加
     String sql="insert into blank values (null,?,?)";
     //删除
     String sql2="delete from blank where id=?";
     //更新
     String sql3="update blank set money=? where id=?";
     
     //直接执行就可以了
     //queryRunner.update(sql,"testroot",20000000);
     
     //删除的执行语句
     //queryRunner.update(sql2,1);
     
     //更新的执行语句
     queryRunner.update(sql3,800000,3);
    }
}

 

 

下面是实现从数据库中查询一条或者多条数据

有如下六种方法

######ResultSetHandler 常用的实现类(重点)
以下两个是使用频率最高的

 BeanHandler,  查询到的单个数据封装成一个对象
 BeanListHandler, 查询到的多个数据封装 成一个List<对象>
------------------------------------------
ArrayHandler,  查询到的单个数据封装成一个数组
ArrayListHandler, 查询到的多个数据封装成一个集合 ,集合里面的元素是数组。

MapHandler, 查询到的单个数据封装成一个map MapListHandler,查询到的多个数据封装成一个集合 ,集合里面的元素是map。

 

 

首先看下常规的操作

import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.sun.swing.internal.plaf.basic.resources.basic;

public class DBUtilDemo2 {
//演示查询一条或者多条数据库中的信息
    public static void main(String[] args) throws SQLException {
        //首先一条语句获得数据库的连接
        QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());
        //然后使用ResultSetHandler(这种不是框架,属于常规操作)
         Account  accoun =  queryRunner.query("select * from blank where id = ?", 
                  new ResultSetHandler<Account>(){
             
                    public Account handle(ResultSet rs) throws SQLException {
                        Account account=new Account();
                        while(rs.next()){
                            String name=rs.getString("name");
                            int money=rs.getInt("money");
                            account.setName(name);
                            account.setMoney(money);
                        }
                        return account;
                    }
         },5);
         
        System.out.println(accoun.getName()+"========"+accoun.getMoney());
    }
}

 

 

 

 

 BeanHandler,  查询到的单个数据封装成一个对象
public class DBUtilDemo2 {
//演示查询一条或者多条数据库中的信息
    public static void main(String[] args) throws SQLException {
        //首先一条语句获得数据库的连接
        QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());
        //然后使用ResultSetHandler(这种不是框架,属于常规操作)
         Account  accoun =  queryRunner.query("select * from blank where id = ?", 
                  new BeanHandler<Account>(Account.class),5);
         
        System.out.println(accoun.getName()+"========"+accoun.getMoney());
        //testroot========20000000
    }
}

 

 

 

BeanListHandler, 查询到的多个数据封装 成一个List<对象>
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.sun.swing.internal.plaf.basic.resources.basic;

public class DBUtilDemo2 {
//演示查询一条或者多条数据库中的信息
    public static void main(String[] args) throws SQLException {
        //首先一条语句获得数据库的连接
        QueryRunner queryRunner = new QueryRunner(new ComboPooledDataSource());
        //BeanListHandler获得数据库的全部信息
         List<Account> list= queryRunner.query("select * from blank", 
                  new BeanListHandler<Account>(Account.class));
        
         //遍历输出
        int len=list.size();
        for(int i=0;i<len;i++){
            Account blank=list.remove(0);
            System.out.println(blank.getName()+"====="+blank.getMoney());
        }
        
    }
}

 

 

 

其中Account类代码如下

public class Account {
    public String name;
    public int money;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }
    
}
posted @ 2019-08-14 01:26  薄眠抛却陈年事。  阅读(196)  评论(0编辑  收藏  举报