精彩的人生

          好好工作,好好生活

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            147 Posts :: 0 Stories :: 250 Comments :: 0 Trackbacks
          剛剛被一個比較麻煩的問題所困擾。這個問題就是如何判斷數據中某張表是否存在,如果不存在則創(chuàng)建它。

          恩,我先用了最笨的方法,就是寫個select從表中讀數據,捕獲異常的同時就知道了改表沒有創(chuàng)建。

          此法不通,因為這個時候的異常似乎被認定為了系統(tǒng)錯誤,于是后面創(chuàng)建表的代碼被忽略了。

          大部分人的做法類似于select system.table where tabblename='***',反正我曾經用類似的句子查詢過DB2,是成功的。

          但是,我現在面對的不是DB2,而是7個不同的數據庫,基本上常用的都包括了。是不是每類數據庫都有上面的查詢語句呢?是否查詢語句相似呢?于是我挑了hsqldb,也是當前的默認數據庫,來尋找解決辦法。

          很遺憾,我沒有找到類似前面的句子。正當我打算放棄的時候發(fā)現了下面的代碼,這段代碼是我從一個國外的論壇中找到的,盡管我不知道它是不是萬能鑰匙,但是他這次對我而言確成了萬能的:

          java.sql.Connection?con?=?getYourConnection();
          ???
          ResultSet?rs?
          =?con.getMetaData().getTables(null,?null,?"yourTable",?null);
          if?(rs.next())?{
          //yourTable?exist
          }
          else?{
          //yourTable?not?exist
          }

          ?

          posted on 2006-06-28 17:12 hopeshared 閱讀(3043) 評論(3)  編輯  收藏 所屬分類: Java

          Feedback

          # re: 一段很好用的判斷數據庫中某張表是否存在的代碼 2006-06-28 22:35 兵臨城下
          真的有用嗎!  回復  更多評論
            

          # re: 一段很好用的判斷數據庫中某張表是否存在的代碼 2006-06-29 14:20 hopeshared
          昨天的情況是系統(tǒng)中沒有這張表,所以用的挺好。不記得我有沒有通過重啟服務器來做測試了。。。因為這段代碼是服務器的插件。

          恩,今早打開服務器的結果是error,說數據表已經存在的情況下創(chuàng)建表。

          看來這個用起來也不是很好啊

            回復  更多評論
            

          # re: 一段很好用的判斷數據庫中某張表是否存在的代碼 2009-11-30 22:53 黃花菜
          感謝啊,哈哈 我的QQ:331337390,得多多向你請教啊,哈哈  回復  更多評論
            

          主站蜘蛛池模板: 吉首市| 乌什县| 惠东县| 长顺县| 龙里县| 清水县| 灵璧县| 永年县| 遂昌县| 长武县| 马关县| 眉山市| 隆回县| 平度市| 沙坪坝区| 玉溪市| 郧西县| 特克斯县| 南郑县| 商水县| 寿阳县| 大城县| 德保县| 菏泽市| 大冶市| 赤城县| 方城县| 辽阳市| 洪雅县| 阜城县| 莱州市| 新津县| 襄汾县| 繁昌县| 开封市| 织金县| 原平市| 涞源县| 广西| 阿克陶县| 汪清县|