java工具包(一)——DBUtils

前提

DBUtils是数据库转换查询、插入等操作自动封装数据的工具类,本篇文章对该工具类的下的使用进行详细的说明,方便以后使用。

测试环境

本次接口测试说明的数据表为user表,包含tname、tage两个字段,数据库采用postgresql数据库;

代码

    public static void main(String[] args) throws SQLException {
        String sql1 = "SELECT * FROM \"user\";";
        String sql = "SELECT \"sum\"(tage), \"count\"(*) FROM \"user\";";
        QueryRunner queryRunner = new QueryRunner();
        Connection connection = PostgresConnection.getConnection("192.168.10.102", "5432"
                , "postgres", "postgres", "blues", true
                , 2);
        //将查询的第一行进行输出,结果保存在整个数组(存放第一行)
//        Object[] query = queryRunner.query(connection, sql, new ArrayHandler());
        //将查询结果每一行保存在list中,每个数据内容为查询结果
//        List<Object[]> query = queryRunner.query(connection, sql, new ArrayListHandler());
        //将每一行结果进行指定列的选取,并且数据保存至list(可以通过列名或者下标索引进行选取)
//        List<Integer> query = queryRunner.query(connection, sql, new ColumnListHandler<Integer>("tage"));
        //将第一行结果按照“列名:权重”的形式将查询数据保存至map中
//        Map<String, Object> query = queryRunner.query(connection, sql, new MapHandler());
        //将每一行结果按照“列名:权重”的形式进行数据保存值map,然后将所有map保存在list中
//        List<Map<String, Object>> query = queryRunner.query(connection, sql, new MapListHandler());
        //将每一行结果封装在bean中,然后进行map形式的保存,map中的key可以在构造函数中进行指定,
        // 可以按照位置或者列名进行指定,当两个属性都存在时,以列名为准(来源源码)
//        Map<String, User> query = queryRunner.query(connection, sql, new BeanMapHandler<String, User>(User.class, 2));
        // 将结果按照“列名:权重”的形式进行map保存,然后根据指定的key再将结果保存至map中
//        Map<String, Map<String, Object>> query = queryRunner.query(connection, sql, new KeyedHandler<String>(2));
        // 选取单值进行的操作
//        Long query = queryRunner.query(connection, sql, new ScalarHandler<Long>(2));
        // 以上为对dbutils的工具进行的测试,与此同时,你也可以定义自己handler用以存放自己想要的结果存放格式
        // 定义自己的bean, 进行查询结果的封装;
//        User query = queryRunner.query(connection, sql, new BeanHandler<>(User.class));
//        List<User> query = queryRunner.query(connection, sql, new BeanListHandler<>(User.class));
//        System.out.println(query);

DB中定义了很多的存放结果的数据结构,如果不能满足业务数据需求,则可以继承ResultHandler(大概是这个,记不太清楚了)类来定义自己的数据存放结构。

猜你喜欢

转载自blog.csdn.net/wangxiaotongfan/article/details/79416227