亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用原生JDBC動(dòng)態(tài)解析并獲取表格列名和數(shù)據(jù)的方法

 更新時(shí)間:2023年08月22日 14:44:57   作者:飛翔的佩奇  
這篇文章主要介紹了使用原生JDBC動(dòng)態(tài)解析并獲取表格列名和數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

應(yīng)用場(chǎng)景

查詢某張表,對(duì)于返回的執(zhí)行結(jié)果,咱們并不需要知道他有哪些字段,字段名叫啥,直接通過(guò)原生JDBC動(dòng)態(tài)的獲取列名以及對(duì)應(yīng)的數(shù)據(jù)。

其實(shí)就有點(diǎn)像遍歷map集合,并不需要知道key叫啥,一樣可以遍歷出來(lái):

Map<String,Object> map = Maps.newHashMap();
for (Map.Entry<String, Object> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}

目標(biāo)

將數(shù)據(jù)庫(kù)查詢出來(lái)的結(jié)果,存放到一個(gè)List<Map<String, Object>>集合中,方便后續(xù)批量將該集合的數(shù)據(jù)插入到其他地方

整干貨

private List<Map<String, Object>> executeQuery(String sqlStr,String url,String username,String password) {
		Connection connection = DriverManager.getConnection(url, username, password);
        Statement statement = null;
        ResultSet resultSet = null;
        List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
        try {
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sqlStr);
            final ResultSetMetaData rsmd = resultSet.getMetaData();
            final String[] columnName = new String[rsmd.getColumnCount()];
            for (int i = 1; i <= rsmd.getColumnCount(); ++i) {
                columnName[i - 1] = rsmd.getColumnLabel(i);
            }
            while (resultSet.next()) {
                LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
                for (int j = 1; j <= rsmd.getColumnCount(); ++j) {
                    if (resultSet.getObject(j) != null && !resultSet.getObject(j).equals("")) {
                        String columnData = resultSet.getObject(j).toString().trim();
                        map.put(columnName[j - 1], columnData);
                    }
                    else {
                        map.put(columnName[j - 1], "");
                    }
                }
                resultList.add(map);
            }
        } catch (SQLException e) {
            logger.error("SQL語(yǔ)句執(zhí)行失敗",e);
        }finally {
            if( null != resultSet ) {
                resultSet.close();
            }
            if( null != statement ) {
                statement.close();
            }
            if( null != connection ) {
                connection .close();
            }
        }
        return resultList;
    }

到此這篇關(guān)于使用原生JDBC動(dòng)態(tài)解析并獲取表格列名和數(shù)據(jù)的文章就介紹到這了,更多相關(guān)JDBC獲取表格列名和數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis的五種批量查詢實(shí)例總結(jié)

    MyBatis的五種批量查詢實(shí)例總結(jié)

    為了提高代碼的執(zhí)行效率,我們有時(shí)需要采用批量查詢的查詢方法,下面這篇文章主要給大家介紹了關(guān)于MyBatis的五種批量查詢的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案

    SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案

    這篇文章主要介紹了SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),對(duì)大家解決問(wèn)題有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Java基礎(chǔ)篇之分布式版本控制工具Git

    Java基礎(chǔ)篇之分布式版本控制工具Git

    Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理。 也是Linus Torvalds為了幫助管理Linux內(nèi)核開(kāi)發(fā)而開(kāi)發(fā)的一個(gè)開(kāi)放源碼的版本控制軟件
    2021-10-10
  • Java使用鎖解決銀行取錢(qián)問(wèn)題實(shí)例分析

    Java使用鎖解決銀行取錢(qián)問(wèn)題實(shí)例分析

    這篇文章主要介紹了Java使用鎖解決銀行取錢(qián)問(wèn)題,結(jié)合實(shí)例形式分析了java線程同步與鎖機(jī)制相關(guān)原理及操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目

    k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目

    本文主要介紹了k8s部署springboot實(shí)現(xiàn)前后端分離項(xiàng)目,主要包括配置文件、鏡像構(gòu)建和容器編排等方面,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • 如何利用postman完成JSON串的發(fā)送功能(springboot)

    如何利用postman完成JSON串的發(fā)送功能(springboot)

    這篇文章主要介紹了如何利用postman完成JSON串的發(fā)送功能(springboot),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 分析java 中AspectJ切面執(zhí)行兩次的原因

    分析java 中AspectJ切面執(zhí)行兩次的原因

    這篇文章主要介紹了分析java 中AspectJ切面執(zhí)行兩次的原因的相關(guān)資料,希望通過(guò)本能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • IntelliJ IDEA 2020 安裝和常用配置(推薦)

    IntelliJ IDEA 2020 安裝和常用配置(推薦)

    這篇文章主要介紹了IntelliJ IDEA 2020 安裝和常用配置(推薦),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • spring boot自定義log4j2日志文件的實(shí)例講解

    spring boot自定義log4j2日志文件的實(shí)例講解

    下面小編就為大家分享一篇spring boot自定義log4j2日志文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Java 中的 File類(lèi)詳情

    Java 中的 File類(lèi)詳情

    這篇文章主要介紹了Java 中的 File類(lèi),對(duì)于File而言,其封裝的并不是一個(gè)真正存在的文件,僅僅是一個(gè)路徑名而已,下面我們來(lái)看看文章對(duì)File類(lèi)的詳情介紹吧,需要的朋友也可以參考一下
    2021-11-11

最新評(píng)論