使用ResultSetMetaData顯示欄位的名字等資訊

來源:互聯網
上載者:User
package com.test;
import java.sql.*;

/** *//****************************************
* 此例說明的問題:JDBC開發流程 --使用ResultSetMetaData顯示欄位的名字等資訊
* 註:該例中使用的驅動為Jdbc-Odbc橋驅動
****************************************/

class Hello
...{
    public static void main(String args[])
    ...{
        try
        ...{
            /** *//**
            * 第一步:載入JDBC驅動;
            */
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            
            /** *//**
            * 第二步:建立串連;
            * 註:此步需要為SqlServer資料庫Book建立資料來源名稱bookdsn
            */            
            String url="jdbc:odbc:bookdsn";         
            Connection con=DriverManager.getConnection(url,"sa","");
            
            /** *//**
            * 第三步:建立Statement,執行查詢並得到結果集;
            */                
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery("SELECT ID,book_name,book_price,book_quantity from book_stock");
            
            /** *//**
            * 第四步:處理結果集;
            * 註:(1)在迴圈讀取欄位內容時,必須按欄位記錄集的順序讀取;
            *        順序即select語句中的順序,否則產生索引異常;
            *     (2)一個欄位在當前行只能讀取一次;
            */                
            System.out.println("編號 圖書名稱 圖書單價 圖書數量 ");
            while(rs.next())
            ...{
                    int id=rs.getInt("ID");
                    String book_name=rs.getString("book_name");
                    double book_price=rs.getDouble("book_price");
                    int book_quantity=rs.getInt("book_quantity");
                    System.out.println(id+" "+book_name+" "+book_price+" "+book_quantity);
            }
            
            /** *//**
            * 使用ResultSetMetaData顯示欄位的名字等資訊
            */
            ResultSetMetaData rsMeta=rs.getMetaData();
            System.out.print(" 欄位的數量:");
            int colCount=rsMeta.getColumnCount();
            System.out.println(colCount);
            System.out.println("下面輸出欄位名稱及類型");
            for(int i=1;i<=colCount;i++)
            ...{
                System.out.println(rsMeta.getColumnName(i)+" 類型:"+rsMeta.getColumnTypeName(i));
            }
            
            /** *//**
            * 第五步:關閉串連、結果集;
            * 注:先關結果集再關串連;
            */                
            rs.close();
            stmt.close();
            con.close();
        }
         catch(Exception e)
        ...{
            System.out.println("發生異常:"+e);
        }
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.