“使用QueryRunner查询表中特殊值的操作”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“https://www.bilibili.com/video/BV1eJ411c7rf/?p=53”的新页面)
 
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=53
 
https://www.bilibili.com/video/BV1eJ411c7rf/?p=53
 +
 +
=== ScalarHandler ===
 +
 +
==== 示例1 ====
 +
<syntaxhighlight lang="java">
 +
    /**
 +
    * 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);
 +
 +
    }
 +
</syntaxhighlight><syntaxhighlight lang="console">
 +
7
 +
</syntaxhighlight>
 +
 +
 +
 +
==== 示例2 ====
 +
<syntaxhighlight lang="java">
 +
    /**
 +
    * 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);
 +
 +
    }
 +
</syntaxhighlight><syntaxhighlight lang="console">
 +
2023-01-09
 +
</syntaxhighlight>https://github.com/jihch/jdbc_2/blob/main/src/main/java/io/github/jihch/dbutils/QueryRunnerTest.java

2023年1月14日 (六) 07:03的最新版本

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

https://github.com/jihch/jdbc_2/blob/main/src/main/java/io/github/jihch/dbutils/QueryRunnerTest.java