欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java小知識(shí)之查詢數(shù)據(jù)庫(kù)數(shù)據(jù)的元信息

 更新時(shí)間:2021年10月13日 15:34:35   作者:程序那些事  
這篇文章主要給大家介紹了關(guān)于java小知識(shí)之查詢數(shù)據(jù)庫(kù)數(shù)據(jù)的元信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

簡(jiǎn)介

java中數(shù)據(jù)庫(kù)的操作相信大家都不陌生,JDK提供了java.sql包來規(guī)范對(duì)數(shù)據(jù)庫(kù)的各種操作。我們最常用的操作就是從數(shù)據(jù)庫(kù)的ResultSet中獲取數(shù)據(jù),其實(shí)這個(gè)包中還有一個(gè)非常有用的類叫做ResultSetMetaData,可以通過這個(gè)類來獲取查詢數(shù)據(jù)的元信息,一起來看看吧。

使用ResultSet

java.sql.ResultSet是一個(gè)通用的規(guī)范,用來表示從數(shù)據(jù)庫(kù)獲取到的數(shù)據(jù)。

通常來說,我們通過connection來創(chuàng)建Statement,然后通過執(zhí)行查詢語(yǔ)句來得到:

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_UPDATABLE);
         ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");

resultSet提供了各種getter方法,來獲取結(jié)果集中的各種數(shù)據(jù)??梢酝ㄟ^index,也可以通過column名稱來獲取。

當(dāng)然,使用index它的效率會(huì)更高,index是從1開始的。如果是通過列名來獲取數(shù)據(jù),傳入的列名是大小寫不敏感的,如果結(jié)果數(shù)據(jù)中有多個(gè)匹配的類,則會(huì)返回最先匹配的那一列。

在get的過程中,JDBC driver會(huì)嘗試將結(jié)果數(shù)據(jù)的數(shù)據(jù)庫(kù)類型轉(zhuǎn)換成為對(duì)應(yīng)的java類型。

JDBC 2.0 API,ResultSet也可以進(jìn)行更新和插入操作,可能我們很少這樣做,一般都是先構(gòu)造好數(shù)據(jù)后直接插入。

先看下更新操作:

         rs.absolute(5); // 將游標(biāo)移動(dòng)到第5行
         rs.updateString("SITE", "www.flydean.com"); // 將SITE更新為www.flydean.com
         rs.updateRow(); // 更新到數(shù)據(jù)庫(kù)中

再看下插入操作:

  
         rs.moveToInsertRow(); // 將游標(biāo)移動(dòng)到插入行
         rs.updateString(1, "www.flydean.com"); // 將插入行的第一列更新為www.flydean.com
         rs.updateInt(2,35); // 更新第二列為35
         rs.updateBoolean(3, true); // 更新第三列為true
         rs.insertRow();
         rs.moveToCurrentRow();

使用ResultSetMetaData

有了ResultSet,我們可以通過它的getMetaData方法,來獲取結(jié)果集的元數(shù)據(jù)。

什么是元數(shù)據(jù)呢?元數(shù)據(jù)又叫做Metadata,是用來描述數(shù)據(jù)屬性的數(shù)據(jù)。

   ResultSetMetaData getMetaData() throws SQLException;

舉個(gè)具體的例子:

       ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
       ResultSetMetaData rsmd = rs.getMetaData();
       int numberOfColumns = rsmd.getColumnCount();
       boolean b = rsmd.isSearchable(1);

ResultSetMetaData提供了很多非常有用的元數(shù)據(jù)檢測(cè)方法:

我們可以拿到列的名稱、類型、字段長(zhǎng)度、是否為空等很多有意義的數(shù)據(jù)。

這個(gè)元數(shù)據(jù)有什么用呢?

通過元數(shù)據(jù),我們可以拿到數(shù)據(jù)庫(kù)的描述文件,從而可以自動(dòng)創(chuàng)建對(duì)應(yīng)的數(shù)據(jù)庫(kù)表格的映射關(guān)系,從而減少手動(dòng)代碼的輸入,非常的方便。

用過MybatisPlus的朋友可能知道,它提供了一個(gè)AutoGenerator,可以自動(dòng)生成mapper對(duì)象和對(duì)應(yīng)的xml文件,非常好用,大家可以試一試。

總結(jié)

以上就是ResultSet和ResultSetMetaData的介紹,大家學(xué)會(huì)了嗎?

到此這篇關(guān)于java小知識(shí)之查詢數(shù)據(jù)庫(kù)數(shù)據(jù)元信息的文章就介紹到這了,更多相關(guān)java查詢數(shù)據(jù)庫(kù)數(shù)據(jù)元信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論