最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用原生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)文章

  • spring結(jié)合hibernate示例詳解

    spring結(jié)合hibernate示例詳解

    這篇文章主要介紹了spring結(jié)合hibernate結(jié)合,需要的朋友可以參考下
    2017-09-09
  • 不可不知道的10個(gè)java謊言

    不可不知道的10個(gè)java謊言

    這篇文章主要為大家詳細(xì)介紹了不可不知道的10個(gè)java謊言,大家一定要謹(jǐn)慎,需要了解的朋友可以參考一下
    2016-09-09
  • PowerJob Alarmable工作流程源碼剖析

    PowerJob Alarmable工作流程源碼剖析

    這篇文章主要為大家介紹了PowerJob Alarmable工作流程源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 淺談為什么Java中1000==1000為false而100==100為true

    淺談為什么Java中1000==1000為false而100==100為true

    這篇文章主要介紹了淺談為什么Java中1000==1000為false而100==100為true,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java線程協(xié)作的兩種方式小結(jié)

    Java線程協(xié)作的兩種方式小結(jié)

    Java中線程協(xié)作的最常見的兩種方式是利用Object.wait()、Object.notify()和使用Condition,本文主要介紹了Java線程協(xié)作的兩種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring Boot緩存實(shí)戰(zhàn) Caffeine示例

    Spring Boot緩存實(shí)戰(zhàn) Caffeine示例

    本篇文章主要介紹了Spring Boot緩存實(shí)戰(zhàn) Caffeine示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Spring Boot 日志功能深度解析與實(shí)踐指南

    Spring Boot 日志功能深度解析與實(shí)踐指南

    本文詳細(xì)介紹了SpringBoot的日志功能,包括默認(rèn)日志框架Logback,日志級(jí)別配置,日志格式自定義,日志文件輸出,日志歸檔與清理,自定義日志配置,與其他日志框架的集成以及日志性能優(yōu)化,通過(guò)結(jié)合實(shí)際場(chǎng)景,提供了詳細(xì)的配置與實(shí)踐指南,感興趣的朋友一起看看吧
    2025-01-01
  • Java中BigDecimal的基本運(yùn)算(詳解)

    Java中BigDecimal的基本運(yùn)算(詳解)

    下面小編就為大家?guī)?lái)一篇Java中BigDecimal的基本運(yùn)算(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • 解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題

    解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題

    今天小編就為大家分享一篇關(guān)于解決Eclipse Tomcat OutOfMemoryError:PermGen space的問(wèn)題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 解決IDEA錯(cuò)誤 Cause: java.sql.SQLException: The server time zone value的問(wèn)題

    解決IDEA錯(cuò)誤 Cause: java.sql.SQLException: The server time zone

    這篇文章主要介紹了解決IDEA錯(cuò)誤 Cause: java.sql.SQLException: The server time zone value的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

湘阴县| 扎赉特旗| 澳门| 康保县| 洮南市| 乌审旗| 监利县| 新兴县| 汝城县| 仁怀市| 晋州市| 乌什县| 新巴尔虎右旗| 洛隆县| 邵阳市| 奉化市| 忻州市| 南城县| 井冈山市| 凤庆县| 清河县| 桃江县| 邵阳市| 东丽区| 洛南县| 高安市| 昭苏县| 新乐市| 武功县| 香格里拉县| 威海市| 韶山市| 富源县| 库车县| 金山区| 玉田县| 黄浦区| 资阳市| 兰溪市| 阳春市| 石门县|