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);
    }
}

 

猜你喜欢

转载自blog.csdn.net/weixin_41957098/article/details/88762903