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

Java中ResultSetMetaData 元數(shù)據(jù)的具體使用

 更新時間:2023年04月25日 16:06:40   作者:搏·夢  
本文主要介紹了Java中ResultSetMetaData 元數(shù)據(jù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1. 前言

ResultSetMetaData 叫元數(shù)據(jù),是數(shù)據(jù)庫 列對象,以列為單位封裝為對象。

元數(shù)據(jù),指的是其包含列名,列值,列類型,列長度等等有用信息

2. 常用方法介紹

ResultSetMetaData 常用方法:

1).  metaData.getColumnName(i)         獲取該列的原始名字
2).  metaData.getColumnLabel(i)        獲取該列的別名
3).  metaData.getColumnClassName(i)    獲取該列的(在java中的)數(shù)據(jù)類型
4).  metaData.getColumnType(i)         獲取該列的(在數(shù)據(jù)庫中的)數(shù)據(jù)類型對應的序號
5).  metaData.getColumnTypeName(i)     獲取該列的(在數(shù)據(jù)庫中的)數(shù)據(jù)類型
6).  metaData.getScale(i)              獲取該列中小數(shù)點右邊的位數(shù)
7).  metaData.getColumnDisplaySize(i)  獲取該列的長度
8).  metaData.isAutoIncrement(i)       判斷該列的值是否自動遞增
9).  metaData.isNullable(i)            判斷該列的值是否為null
10).  metaData.getTableName(i)          獲取表名

3. 代碼演示

先準備好一張表,如下圖:

代碼:

public class Test {

    private static final String URL = "jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "root";

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        // sql 語句 是使用了 別名的
        PreparedStatement preparedStatement = connection.prepareStatement("select id as ID, username as USERNAME, birthday as BIRTHDAY, sex as SEX, address as ADDRESS, money as MONEY  from user ");
        ResultSet resultSet = preparedStatement.executeQuery();
        // 獲取元數(shù)據(jù)對象
        ResultSetMetaData metaData = resultSet.getMetaData();
        // 獲取一共有多少列
        int columnCount = metaData.getColumnCount();
        // 將數(shù)據(jù)封裝為Map
        List<Map<String, Object>> list = new ArrayList<>();
        while (resultSet.next()) {
            Map<String, Object> columnMap = new HashMap<>();
            // 注:列名的索引 起始是 1 不是 0
            for (int i = 1; i <= columnCount; i++) {
                System.out.println("getColumnName(i): " + metaData.getColumnName(i));
                System.out.println("getColumnLabel(i): " + metaData.getColumnLabel(i));
                System.out.println("getColumnClassName(i): " + metaData.getColumnClassName(i));
                System.out.println("getColumnType(i): " + metaData.getColumnType(i));
                System.out.println("getColumnTypeName(i): " + metaData.getColumnTypeName(i));
                System.out.println("getScale(i): " + metaData.getScale(i));
                System.out.println("isNullable(i): " + metaData.isNullable(i));
                System.out.println("isAutoIncrement(i): " + metaData.isAutoIncrement(i));
                System.out.println("getTableName(i): " + metaData.getTableName(i));
                System.out.println();

                String key = metaData.getColumnName(i);
                Object value = resultSet.getObject(key);
                columnMap.put(key, value);
            }
            list.add(columnMap);
        }
        System.out.println();
        System.out.println(list);
        resultSet.close();
        preparedStatement.close();
        connection.close();
    }
}

4. 結(jié)果圖(一部分)

getColumnName(i): id
getColumnLabel(i): ID
getColumnClassName(i): java.lang.Integer
getColumnType(i): 4
getColumnTypeName(i): INT
getScale(i): 0
isNullable(i): 0
isAutoIncrement(i): true   // id 自增 因此為true
getTableName(i): user

getColumnName(i): username
getColumnLabel(i): USERNAME
getColumnClassName(i): java.lang.String
getColumnType(i): 12
getColumnTypeName(i): VARCHAR
getScale(i): 0
isNullable(i): 0
isAutoIncrement(i): false
getTableName(i): user

getColumnName(i): birthday
getColumnLabel(i): BIRTHDAY
getColumnClassName(i): java.time.LocalDateTime
getColumnType(i): 93
getColumnTypeName(i): DATETIME
getScale(i): 0
isNullable(i): 1
isAutoIncrement(i): false
getTableName(i): user

getColumnName(i): sex
getColumnLabel(i): SEX
getColumnClassName(i): java.lang.String
getColumnType(i): 1
getColumnTypeName(i): CHAR
getScale(i): 0
isNullable(i): 1
isAutoIncrement(i): false
getTableName(i): user

getColumnName(i): address
getColumnLabel(i): ADDRESS
getColumnClassName(i): java.lang.String
getColumnType(i): 12
getColumnTypeName(i): VARCHAR
getScale(i): 0
isNullable(i): 1
isAutoIncrement(i): false
getTableName(i): user

getColumnName(i): money
getColumnLabel(i): MONEY
getColumnClassName(i): java.math.BigDecimal
getColumnType(i): 3
getColumnTypeName(i): DECIMAL
getScale(i): 3     // 在數(shù)據(jù)庫中該列值是 decimal 且是3位小數(shù) 因此得出 3
isNullable(i): 1
isAutoIncrement(i): false
getTableName(i): user

list:結(jié)果:
[
{birthday=2021-02-27T17:47:08, address=北京, money=10.580, sex=男, id=41, username=老王}, 
{birthday=2021-03-02T15:09:37, address=北京, money=10.580, sex=女, id=42, username=小二王}, 
{birthday=2021-03-04T11:34:34, address=北京, money=10.580, sex=女, id=43, username=小二王}, 
{birthday=2021-03-04T12:04:06, address=北京, money=10.580, sex=男, id=45, username=大王}, 
{birthday=2021-03-07T17:37:26, address=北京, money=10.580, sex=男, id=46, username=老王}, 
{birthday=2021-03-08T11:44, address=北京, money=10.580, sex=女, id=48, username=小馬}, 
{birthday=null, address=null, money=null, sex=男, id=50, username=kkooop}
]

5. 源碼

https://gitee.com/Lgold/learning/tree/df1887c456aa4a140839104de0408f9dedb67ca4/src/main/java/com/king/learning/ResultSetMetaData

到此這篇關(guān)于Java中ResultSetMetaData 元數(shù)據(jù)的具體使用的文章就介紹到這了,更多相關(guān)ResultSetMetaData 元數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Java的Graphics類進行繪圖的方法詳解

    使用Java的Graphics類進行繪圖的方法詳解

    這篇文章主要介紹了使用Java的Graphics類進行繪圖的方法,是Java的GUI編程的基礎,需要的朋友可以參考下
    2015-10-10
  • Springboot中使用緩存的示例代碼

    Springboot中使用緩存的示例代碼

    這篇文章主要介紹了Springboot中使用緩存的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 如何使用Java模擬退火算法優(yōu)化Hash函數(shù)

    如何使用Java模擬退火算法優(yōu)化Hash函數(shù)

    為了解決局部最優(yōu)解問題,1983年,Kirkpatrick等提出了模擬退火算法(SA)能有效的解決局部最優(yōu)解問題。模擬退火算法包含兩個部分即Metropolis算法和退火過程。Metropolis算法就是如何在局部最優(yōu)解的情況下讓其跳出來,是退火的基礎
    2021-06-06
  • Java實現(xiàn)屏幕截圖及剪裁

    Java實現(xiàn)屏幕截圖及剪裁

    這是一篇入門級文章,高手請略過。在這篇文章中我們將學習如何用 Java 對圖像進行剪裁并將剪裁出來的部分單獨保存到文件中。
    2014-09-09
  • Springboot整合log4j2日志全解總結(jié)

    Springboot整合log4j2日志全解總結(jié)

    這篇文章主要介紹了Springboot整合log4j2日志全解總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • SpringBoot集成MyBatis對管理員的查詢操作

    SpringBoot集成MyBatis對管理員的查詢操作

    本文主要介紹了SpringBoot集成MyBatis對管理員的查詢操作,實現(xiàn)增刪改查中的查詢操作,對所有的普通管理員進行查詢操作,感興趣的可以了解一下
    2023-11-11
  • spring?Cloud微服務阿里開源TTL身份信息的線程間復用

    spring?Cloud微服務阿里開源TTL身份信息的線程間復用

    這篇文章主要為大家介紹了spring?Cloud微服務中使用阿里開源TTL身份信息的線程間復用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Spring Boot使用Spring的異步線程池的實現(xiàn)

    Spring Boot使用Spring的異步線程池的實現(xiàn)

    這篇文章主要介紹了Spring Boot使用Spring的異步線程池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Springboot注解之@EnableAutoConfiguration詳解

    Springboot注解之@EnableAutoConfiguration詳解

    這篇文章主要介紹了Springboot注解之@EnableAutoConfiguration詳解,@EnableAutoConfiguration是一個加載Starter目錄包之外的需要Spring自動生成bean對象,本文對其進行總結(jié),需要的朋友可以參考下
    2023-08-08
  • Java實現(xiàn)推箱子游戲

    Java實現(xiàn)推箱子游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評論

镶黄旗| 衡阳市| 舟山市| 苍山县| 汤原县| 和政县| 彭州市| 乌兰浩特市| 曲阳县| 光山县| 台中县| 南平市| 宾川县| 调兵山市| 中江县| 城市| 武隆县| 桐城市| 凌源市| 惠州市| 泽普县| 资溪县| 大姚县| 丹东市| 珠海市| 阿图什市| 南昌市| 阳江市| 柯坪县| 河津市| 南乐县| 中山市| 台中市| 阳高县| 兰考县| 涟源市| 祁连县| 西乡县| 旬邑县| 平陆县| 隆林|