JAVA SE使用DBUtils資料查詢(使用KeyedHandler)

DBUtils資料查詢範例(使用KeyedHandler)

前言

KeyedHandler可將查詢的每一筆資料以Map物件進行封裝,並將Map物件封裝至Map物件當中,並且可指定哪一個欄位為Key值,方便單獨取得各筆資料物件。

實作

以下進行簡單的示範。

Java程式碼

DBUtilsSelectByKeyedHandlerDemo.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package tw.url.openjry;

import java.sql.SQLException;
import java.util.Map;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.KeyedHandler;

import tw.url.openjry.conf.DataSourceConf;

/**
 * DBUtils 資料查詢 (使用 KeyedHandler)
 *
 * @author Art Yang
 *
 */
public class DBUtilsSelectByKeyedHandlerDemo {

    /**
     * <p>主程式方法</p>
     * <p>使用 KeyedHandler 進行資料查詢會返回封裝好的 Map<key, Map<key, value>> 物件</p>
     *
     * @param args 外部參數
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String sqlStmt = "select * from blog";

        QueryRunner queryRunner = new QueryRunner(DataSourceConf.getDataSource());
        Map<String, Map<String, Object>> result = queryRunner.query(sqlStmt, new KeyedHandler<>("blogName"));

        System.out.printf("顯示全部結果%n---------------------%n" + result);

        Map<String, Object> map = result.get("楊藝的洋溢生活_8");

        System.out.printf("顯示單一結果%n---------------------%n"+ map);
    }

}

執行結果

1
2
3
4
5
6
顯示全部結果
---------------------
{楊藝的洋溢生活_9={blogSeqNo=11, blogName=楊藝的洋溢生活_9, author=ArtYang_9, remark=生活記事、系統管理、程式設計、資料庫_9, createdTime=2019-05-01 13:41:39.0, updatedTime=null}, 楊藝的洋溢生活_7={blogSeqNo=9, blogName=楊藝的洋溢生活_7, author=ArtYang_7, remark=生活記事、系統管理、程式設計、資料庫_7, createdTime=2019-05-01 13:41:39.0, updatedTime=null}, 楊藝的洋溢生活_8={blogSeqNo=10, blogName=楊藝的洋溢生活_8, author=ArtYang_8, remark=生活記事、系統管理、程式設計、資料庫_8, createdTime=2019-05-01 13:41:39.0, updatedTime=null}, 楊藝的洋溢生活_1={blogSeqNo=3, blogName=楊藝的洋溢生活_1, author=ArtYang_1, remark=生活記事、系統管理、程式設計、資料庫_1, createdTime=2019-05-01 13:41:38.0, updatedTime=null}, 楊藝的洋溢生活_2={blogSeqNo=4, blogName=楊藝的洋溢生活_2, author=ArtYang_2, remark=生活記事、系統管理、程式設計、資料庫_2, createdTime=2019-05-01 13:41:38.0, updatedTime=null}, 楊藝的洋溢生活_0={blogSeqNo=2, blogName=楊藝的洋溢生活_0, author=ArtYang_0, remark=生活記事、系統管理、程式設計、資料庫_0, createdTime=2019-05-01 13:41:38.0, updatedTime=null}, 楊藝的洋溢生活_5={blogSeqNo=7, blogName=楊藝的洋溢生活_5, author=ArtYang_5, remark=生活記事、系統管理、程式設計、資料庫_5, createdTime=2019-05-01 13:41:38.0, updatedTime=null}, 楊藝的洋溢生活_6={blogSeqNo=8, blogName=楊藝的洋溢生活_6, author=ArtYang_6, remark=生活記事、系統管理、程式設計、資料庫_6, createdTime=2019-05-01 13:41:39.0, updatedTime=null}, 楊藝的洋溢生活_3={blogSeqNo=5, blogName=楊藝的洋溢生活_3, author=ArtYang_3, remark=生活記事、系統管理、程式設計、資料庫_3, createdTime=2019-05-01 13:41:38.0, updatedTime=null}, 楊藝的洋溢生活={blogSeqNo=1, blogName=楊藝的洋溢生活, author=ArtYang, remark=生活記事、系統管理、程式設計、資料庫, createdTime=2019-05-01 13:40:57.0, updatedTime=null}, 楊藝的洋溢生活_4={blogSeqNo=6, blogName=楊藝的洋溢生活_4, author=ArtYang_4, remark=生活記事、系統管理、程式設計、資料庫_4, createdTime=2019-05-01 13:41:38.0, updatedTime=null}}
顯示單一結果
---------------------
{blogSeqNo=10, blogName=楊藝的洋溢生活_8, author=ArtYang_8, remark=生活記事、系統管理、程式設計、資料庫_8, createdTime=2019-05-01 13:41:39.0, updatedTime=null}