使用QueryRunner查询表中特殊值的操作
Jihongchang(讨论 | 贡献)2023年1月14日 (六) 06:58的版本
https://www.bilibili.com/video/BV1eJ411c7rf/?p=53
ScalarHandler
示例1
    /**
     * ScalarHandler:是 ResultSetHandler 接口的实现类,对应查询结果中的单个值
     */
    @Test
    public void testQueryObjectLong() {
        Connection conn = null;
        String sql = "select count(*) from customers";
        /*
        AbstractKeyedHandler, AbstractListHandler, ArrayHandler, ArrayListHandler, BaseResultSetHandler,
        BeanHandler, BeanListHandler, BeanMapHandler, ColumnListHandler,
        KeyedHandler, MapHandler, MapListHandler, ScalarHandler
         */
        ScalarHandler rsh = new ScalarHandler();
        Long count = null;
        QueryRunner runner = new QueryRunner();
        try {
            conn = JDBCUtils.getConnectionFromDruid();
            count = (Long) runner.query(conn, sql, rsh);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null);
        }
        System.out.println(count);
    }
7
示例2
    /**
     * ScalarHandler:是 ResultSetHandler 接口的实现类,对应查询结果中的单个值
     */
    @Test
    public void testQueryObjectDate() {
        Connection conn = null;
        String sql = "select max(birth) from customers";
        /*
        AbstractKeyedHandler, AbstractListHandler, ArrayHandler, ArrayListHandler, BaseResultSetHandler,
        BeanHandler, BeanListHandler, BeanMapHandler, ColumnListHandler,
        KeyedHandler, MapHandler, MapListHandler, ScalarHandler
         */
        ScalarHandler rsh = new ScalarHandler();
        Date d = null;
        QueryRunner runner = new QueryRunner();
        try {
            conn = JDBCUtils.getConnectionFromDruid();
            d = (Date) runner.query(conn, sql, rsh);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.closeResource(conn, null);
        }
        System.out.println(d);
    }
2023-01-09