0
点赞
收藏
分享

微信扫一扫

【QueryRunnerd】BeanListHandler,简直可以说是被自己蠢哭了

最后的执着 2022-04-23 阅读 77
javaidea

问题描述

注意:这里其实不是一个问题是记录一下

为什么在查询用户方法里面调用的query方法之后得到的结果是个List集合
上代码:

package app.uitl;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class DBUtil {
    private static final Properties PROPERTIES;
    private static final DataSource dataSource;

    //    初始化数据库连接池
    static {
        PROPERTIES = new Properties();
        DruidDataSource druidDataSource = new DruidDataSource();
        try {
            InputStream is = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
            PROPERTIES.load(is);

            druidDataSource.setDriverClassName(PROPERTIES.getProperty("driver"));
            druidDataSource.setUsername(PROPERTIES.getProperty("user"));
            druidDataSource.setPassword(PROPERTIES.getProperty("password"));
            druidDataSource.setUrl(PROPERTIES.getProperty("url"));
            druidDataSource.setTestWhileIdle(false);
        } catch (IOException e) {
            e.printStackTrace();
        }
        dataSource = druidDataSource;
    }

//    增删改方法
    private final static QueryRunner runner = new QueryRunner(dataSource);

    public static int update(String sql, Object... args) {
        try {
            return runner.update(sql, args);
        } catch (SQLException e) {
            return -1;
        }
    }

//    查询
    public static <T> List<T> queryAll(Class<T> clazz, String sql, Object... args) {
        List<T> list = new ArrayList<>();
        try {
            return runner.query(sql, new BeanListHandler<>(clazz), args);
        } catch (SQLException e) {
            return List.of();
        }
    }

}

原因分析:

//    查询
    public static <T> List<T> queryAll(Class<T> clazz, String sql, Object... args) {
        List<T> list = new ArrayList<>();
        try {
            return runner.query(sql, new BeanListHandler<>(clazz), args);
        } catch (SQLException e) {
            return List.of();
        }
    }

哈哈哈哈哈绝了被自己蠢哭了!!!!!!!

解决方案:

!!!!!!!好了解决了!!!!!!!

举报

相关推荐

0 条评论