common-dbutils.jar 的 增 删 改 查 操作

下面方法还有可以用Connection的,以后供事务使用

切记使用它,必须你的bean与数据库各个对象的名字一样

 

package day1802;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
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 jdbc.JdbcUtils;
import jdbc.User;

public class Demo5 {
    
    //增加记录
    @Test
    public void insert() throws SQLException {
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="insert into users values(null,?,?,?,?,?)";
        Object[] params = {"李世民","123456","30","男","181888888"};
        qr.update(sql,params);
    }
    //修改记录
    @Test
    public void update() throws SQLException {
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="update users set username=?,password=?,age=? where userid=?";
        Object[] params = {"入云龙","lovemeng18880","33","12"};
        qr.update(sql,params);
    }
    
    //删除记录
    @Test
    public void delete() throws SQLException {
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="delete from users where userid=?";
        Object[] params = {6};
        int de = qr.update(sql,params);
        System.out.println("删除成功"+de);
    }
    
    //查询单条记录
    @Test
    public void selectSingle() throws SQLException { //查询单条记录
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="select * from users where userid=?";
        Object[] params = {16};
        User user = qr.query(sql,new BeanHandler<User>(User.class), params);
        System.out.println(user);
    }
    
    //查询结果 User [userid=16, username=李清照, password=123456, age=28, phone=1866778888, sex=女]
    //查询全部
    //BeanListHandler的应用,它是多行处理器,每行对象一个User对象
    @Test
    public void selectAll() throws SQLException { //查询全部
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="select * from users";
        List<User> user = qr.query(sql, new BeanListHandler<User>(User.class));
        System.out.println(user);
    }
    //查询结果多条记录 [User [userid=12...], User [userid=2....], User [userid=7....]
    
    //MapHandler的应用,它是单行处理,把一行转换成一个Map对象
    @Test
    public void selectSingleMap() throws SQLException { //用Map查询一行
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="select * from users where userid=?";
        Object[] params = {17};
        Map map = qr.query(sql, new MapHandler(),params);
        System.out.println(map);
    }
    
    //用MapListHandler 查询多行 一行一个Map
    @Test
    public void selectAllMapList() throws SQLException { //用Map查询一行
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="select * from users";
        
        List<Map<String, Object>> mapList  = qr.query(sql, new MapListHandler());
        System.out.println(mapList);
    }
    
    //ScalarHandler,它是单行单列时使用,最为合适
    @Test
    public void selectScalar() throws SQLException { //用Map查询一行
        QueryRunner qr = new QueryRunner(JdbcUtils.getDataSourse());
        String sql="select * from users";
        
        Number cnt  = (Number)qr.query(sql, new ScalarHandler());
        long c = cnt.longValue();
        System.out.println(c);
    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行了。代码看着也很简洁。 例如: 使用的类:QueryRunner类+ResultSetHandler类,使用这俩类就可以解决掉。 QueryRunner类的query()方法:new QueryRunner().query(Connection conn, String sql, ResultSetHandler rsh) query方法后面参数中加一个Connection连接,是在获取不到数据源的情况下,也就是说,QueryRunner的实例化构造函数使用无参的那个,下面我的实现代码就是用的这种方法。 当然还有一种实例化:new QueryRunner(new Datasource()).query(String sql, ResultSetHandler rsh) query方法中的参数 ResultSetHandler 参数中加上ResultSetHandler接口的实现类参数(下面这些实现类),执行完SQL后,返回的数据就是已经封装好的我们想要的结果了。 ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[] BeanHandler :将ResultSet中第一行的数据转化成Bean对象 BeanListHandler :将ResultSet中所有的数据转化成List ColumnListHandler :将ResultSet中某一列的数据存成List KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map,Map中存放的是数据 MapHandler :将ResultSet中第一行的数据存成Map MapListHandler :将ResultSet中所有的数据存成List<Map> ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值