zoukankan      html  css  js  c++  java
  • 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;
        }
        
    }
    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    安装xshell6
    eclipse的安装和汉化
    collectd+infludb+grafana实现tomcat JVM监控
    百度网站统计和CNZZ网站统计对比
    shell,计算指定行的和,计算指定列的和
    我为什么要写博客
    kafka监控之topic的lag情况监控
    用rundeck启动tomcat报错
    xwiki升级8.8.4
    矩阵掩膜操作
  • 原文地址:https://www.cnblogs.com/byczyz/p/11349538.html
Copyright © 2011-2022 走看看