JDBC知识学习——DBUtils的使用学习

DBUtils工具类

注意:需要导入commons-dbutils-1.6.jar文件
代码示例如下:

public class DBUtilsTest {
    QueryRunner queryRunner=new QueryRunner();
    /*
    * ScalarHandler:把结果集转为一个数值返回
    * */
    @Test
    public void testScalarHandler(){
        Connection connection=null;
        try {
            connection=JDBCTools.getConnectionPool();
            String sql="select count(id) from user";
            Object rs=queryRunner.query(connection,sql,
                    new ScalarHandler<>());
            System.out.println(rs);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
    /*
    * MapListHandler:将结果集转为一个map的list
    * Map对应查询的一条记录
    * */
    @Test
    public void testMapListHandler(){
        Connection connection=null;
        try {
            connection=JDBCTools.getConnectionPool();
            String sql="select id,name,pwd,sex,home,info from user";
            List<Map<String,Object>> rs=queryRunner.query(connection,sql,
                    new MapListHandler());
            System.out.println(rs);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
    /*
    * MapHandler:返回sql对应的第一条记录的map对象
    * 键:sql查询的列名,值:列名的值
    * */
@Test
public void testMapHandler(){
    Connection connection=null;
    try {
        connection=JDBCTools.getConnectionPool();
        String sql="select id,name,pwd,sex,home,info from user";
        Map<String,Object> rs=queryRunner.query(connection,sql,
                new MapHandler());
        System.out.println(rs);
    }catch (Exception e){
        e.printStackTrace();
    }finally {
        JDBCTools.releaseSource(null,null,connection);
    }
}
    /**
    *@ClassName DBUtilsTest
    *@Description BeanListHandler:把结果集转为一个集合
    *@Param []
    *@Return void
    *@Date 2020/2/18 12:02
    *@Author Roy
    */
    @Test
    public  void testBeanListHandler(){
        Connection connection=null;
        try {
            connection=JDBCTools.getConnectionPool();
            String sql="select id,name,pwd,sex,home,info from user";
            List<User> users=queryRunner.query(connection,sql,
                    new BeanListHandler<>(User.class));
            System.out.println(users);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
    /**
    *@ClassName DBUtilsTest
    *@Description BeanHandler:把结果集的第一条记录转为创建Bean Handler
     * 对象时传入的class参数对应的对象。
    *@Param []
    *@Return void
    *@Date 2020/2/18 11:57
    *@Author Roy
    */
    @Test
            public void testBeanHandler(){
        Connection connection=null;
        try {
            connection=JDBCTools.getConnectionPool();
            String sql="select id,name,pwd,sex,home,info from user where id=?";
           User user=queryRunner.query(connection,sql,
                   new BeanHandler<>(User.class),7);
            System.out.println(user);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
//定义需要传入的的Handler
    class  myResultSetHandler implements ResultSetHandler{
            List<User> users=new ArrayList<>();
        @Override
        public Object handle(ResultSet resultSet) throws SQLException {
            while (resultSet.next()){
                int id=resultSet.getInt(1);
                String name=resultSet.getString(2);
                String pwd=resultSet.getString(3);
                String sex=resultSet.getString(4);
                String home=resultSet.getString(5);
                String info=resultSet.getString(6);
                User user=new User(id,name,pwd,sex,home,info);
                users.add(user);
            }
            return users;
        }
    }
    /**
    *@ClassName DBUtilsTest
    *@Description QueryRunner的query方法返回值取决于ResultSetHandler参数的
     * handle方法的返回值
    *@Param []
    *@Return void
    *@Date 2020/2/18 11:41
    *@Author Roy
    */
    @Test
    public void testQuery(){
        Connection connection=null;
        try {
                connection=JDBCTools.getConnectionPool();
                String sql="select id,name,pwd,sex,home,info from user";
                Object obj=queryRunner.query(connection,sql,new myResultSetHandler());
            System.out.println(obj);
        }catch (Exception e){
e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
    /*
    *DBUtils类的update方法可用于insert、delete和update
    * */
    @Test
    public void testQueryRunnerUpdate(){
        //创建QueryRunner的实现类
        QueryRunner queryRunner=new QueryRunner();
        String sql="delete from user where  id in (?,?)";
        Connection connection=null;
        try{
                connection=JDBCTools.getConnectionPool();
        //使用update方法
                queryRunner.update(connection,sql,11,12);
            System.out.println("sql执行成功");
        }catch (Exception e){
        e.printStackTrace();
        }finally {
            JDBCTools.releaseSource(null,null,connection);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值