成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談JDBC代碼如何重復使用

開發 后端
在使用JDBC代碼連接數據庫的時,我們會采用EXECUTEQUERY(STRING SQL)獲得一個結果集。當數據庫結構變化或者獲得其他數據庫表結果集的時候我們需要將RESULTSET結果集根據不同的數據結構重新遍歷。

如何才能利用JDBC代碼建立一個與數據庫結構無關的JDBC連接呢?

我們可以通過使用RESULTSETMETADATA()方法獲得表結構。然后使用OBJECT[]數組遍歷結果集。當我們要取得相應的結果時,我們可以使用ITERATOR迭代器。只需遍歷迭代器就可以取出結果。

下面的JDBC代碼是我寫的一個方法:

  1IMPORT JAVA.MATH.BIGDECIMAL;
  2IMPORT JAVA.SQL.CONNECTION;
  3IMPORT JAVA.SQL.DRIVERMANAGER;
  4IMPORT JAVA.SQL.RESULTSET;
  5IMPORT JAVA.SQL.RESULTSETMETADATA;
  6IMPORT JAVA.SQL.SQLEXCEPTION;
  7IMPORT JAVA.SQL.STATEMENT;
  8IMPORT JAVA.UTIL.ARRAYLIST;
  9IMPORT JAVA.UTIL.ITERATOR;
 10IMPORT JAVA.UTIL.LIST;
 11
 12PUBLIC CLASS NEWJDBC {
 13    PRIVATE STRING URL = "JDBC:ORACLE(大型網站數據庫平臺):THIN:@LOCALHOST:1521:NITPRO";
 14
 15    PRIVATE STRING DBUSERNAME = "SCOTT";
 16
 17    PRIVATE STRING DBUSERPASSWORD = "TIGER";
 18
 19    PRIVATE CONNECTION CONN = NULL;
 20
 21    PRIVATE STATEMENT STMT = NULL;
 22
 23    PRIVATE RESULTSET RS = NULL;
 24
 25    PUBLIC NEWJDBC() {
 26        TRY {
 27            CLASS.FORNAME("ORACLE(大型網站數據庫平臺).JDBC.DRIVER.ORACLE(大型網站數據庫平臺)DRIVER");
 28        } CATCH (CLASSNOTFOUNDEXCEPTION E) {
 29            E.PRINTSTACKTRACE();
 30        }
 31    }
 32
 33    PUBLIC CONNECTION GETCONNECTION() {
 34        TRY {
 35            CONN = DRIVERMANAGER.GETCONNECTION(URL, DBUSERNAME, DBUSERPASSWORD);
 36        } CATCH (SQLEXCEPTION E) {
 37            E.PRINTSTACKTRACE();
 38        }
 39        RETURN CONN;
 40    }
 41
 42    PUBLIC VOID CLOSE(RESULTSET RS, STATEMENT STMT, CONNECTION CONN) {
 43        IF (RS != NULL) {
 44            TRY {
 45                RS.CLOSE();
 46            } CATCH (SQLEXCEPTION E) {
 47                E.PRINTSTACKTRACE();
 48            }
 49        }
 50        IF (STMT != NULL) {
 51            TRY {
 52                STMT.CLOSE();
 53            } CATCH (SQLEXCEPTION E) {
 54                E.PRINTSTACKTRACE();
 55            }
 56        }
 57        IF (CONN != NULL) {
 58            TRY {
 59                CONN.CLOSE();
 60            } CATCH (SQLEXCEPTION E) {
 61                E.PRINTSTACKTRACE();
 62            }
 63        }
 64    }
 65
 66    PUBLIC LIST QUERY(STRING SQL) {
 67        LIST LIST = NEW ARRAYLIST();
 68
 69        CONN = THIS.GETCONNECTION();
 70        TRY {
 71            STMT = CONN.CREATESTATEMENT();
 72            RS = STMT.EXECUTEQUERY(SQL);
 73            //獲取數據庫表結構
 74            RESULTSETMETADATA RSM = RS.GETMETADATA();
 75            //取得數據庫的列數
 76            INT COL = RSM.GETCOLUMNCOUNT();
 77            //生成COL長度的OBJECT數組
 78            OBJECT[] OBJ = NEW OBJECT[COL];
 79            //遍歷結果集,將結果存入OBJECT數組
 80            WHILE (RS.NEXT()) {
 81                FOR (INT I = 0; I < COL; I++) {
 82                    OBJ[I] = RS.GETOBJECT(I + 1);
 83                }
 84                LIST.ADD(OBJ);
 85            }
 86        } CATCH (SQLEXCEPTION E) {
 87            E.PRINTSTACKTRACE();
 88        } FINALLY {
 89            THIS.CLOSE(RS, STMT, CONN);
 90        }
 91        RETURN LIST;
 92    }
 93
 94    PUBLIC VOID UPDATE(STRING SQL) {
 95        TRY {
 96            CONN = THIS.GETCONNECTION();
 97            STMT = CONN.CREATESTATEMENT();
 98            STMT.EXECUTEUPDATE(SQL);
 99        } CATCH (SQLEXCEPTION E) {
100            E.PRINTSTACKTRACE();
101        }
102    }
103
104    PUBLIC STATIC VOID MAIN(STRING ARGS[]) {
105        NEWJDBC NJ = NEW NEWJDBC();
106        STRING SQL = "SELECT * FROM USERS";
107        LIST LIST = NJ.QUERY(SQL);
108        //返回LIST的迭代器
109        ITERATOR IT = LIST.ITERATOR();
110        //遍歷迭代器,取出結果
111        WHILE (IT.HASNEXT()) {
112            OBJECT[] O = (OBJECT[]) IT.NEXT();
113            INT ID = ((BIGDECIMAL) O[0]).INTVALUE();
114            SYSTEM.OUT.PRINTLN(ID);
115        }
116
117    }
118}

【編輯推薦】

  1. 使用JDBC的五個精華功能
  2. Tomcat5+MySQL JDBC連接池配置
  3. 在Weblogic中實現JDBC的功能
  4. 詳解JDBC與Hibernate區別
  5. JDBC連接MySQL數據庫關鍵四步
  6. 淺談JDBC的概念理解與學習
責任編輯:彭凡 來源: jspback.cn
相關推薦

2021-01-25 06:53:59

前端AJAX技術熱點

2009-07-15 17:52:23

sqlite jdbc

2009-07-16 17:06:55

JSP網頁中JDBC代

2009-07-17 17:41:25

JDBC連接SQL S

2009-07-14 16:16:04

JDBC update

2009-07-23 13:30:46

JDBC事務

2009-07-22 13:32:24

JDBC SQL

2009-07-15 15:18:01

JDBC連接SQL S

2024-10-23 08:00:00

2009-07-16 14:46:48

jdbc statem

2009-07-16 16:23:20

JDBC result

2009-07-15 15:47:12

JDBC DAO

2009-09-22 13:41:10

直接使用Hiberna

2009-07-15 16:23:54

Java JDBC

2009-07-22 14:30:53

JDBC連接池

2009-07-15 17:11:31

JDBC的概念

2009-06-29 17:17:57

Spring

2009-07-01 16:01:58

JSP數據庫

2024-04-28 18:31:03

2009-07-20 15:56:08

JDBC連接數據庫步驟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区久久久 | 国产精品一区二区三区99 | 成人免费av在线 | 91免费看片 | 视频在线观看一区二区 | 欧美在线免费 | 中文字幕av亚洲精品一部二部 | 免费日韩av| 精品国产鲁一鲁一区二区张丽 | 亚洲成人av一区二区 | 午夜视频在线免费观看 | 久久久久电影 | 在线视频 欧美日韩 | 亚洲欧美日韩精品久久亚洲区 | 一二区视频 | 亚洲人成人一区二区在线观看 | 久久综合国产精品 | 日韩av免费看 | 97影院2 | 日日干干夜夜 | 日韩欧美在线不卡 | 夜夜爽99久久国产综合精品女不卡 | 中文字幕免费观看 | 欧美专区在线观看 | 国产视频第一页 | 成人国产精品色哟哟 | 亚洲精品久久久 | 一级毛片免费 | 国产专区免费 | 亚洲成人精品免费 | 国产毛片av | 中文字幕在线一 | 黄网站涩免费蜜桃网站 | 国产蜜臀 | 在线免费观看毛片 | 日韩毛片在线观看 | 国产婷婷精品av在线 | av入口 | 亚洲草草视频 | 欧美久久久久久久 | 中文在线一区 |