精彩的人生

          好好工作,好好生活

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

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

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

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

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

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

          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 閱讀(3035) 評論(3)  編輯  收藏 所屬分類: Java

          Feedback

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

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

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

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

            回復  更多評論
            

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

          主站蜘蛛池模板: 巴里| 武川县| 梅州市| 会东县| 都江堰市| 进贤县| 泸西县| 乡宁县| 诸城市| 萝北县| 成都市| 荥阳市| 涪陵区| 梅州市| 大余县| 平阳县| 长治市| 元江| 兴国县| 阜宁县| 阿勒泰市| 天等县| 桂东县| 乐都县| 潼关县| 秦皇岛市| 玛多县| 磐石市| 犍为县| 神池县| 新郑市| 桃源县| 胶州市| 青神县| 青铜峡市| 梁山县| 佛冈县| 鲁山县| 叙永县| 遂川县| 盱眙县|