精彩的人生

          好好工作,好好生活

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

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

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

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

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

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

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

          Feedback

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

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

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

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

            回復  更多評論
            

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

          主站蜘蛛池模板: 葫芦岛市| 沛县| 呼图壁县| 教育| 合江县| 郁南县| 黄冈市| 泽普县| 枣强县| 民县| 日喀则市| 苏尼特左旗| 拉萨市| 武川县| 右玉县| 砀山县| 白山市| 蛟河市| 晋城| 镇原县| 永宁县| 阳高县| 稷山县| 新疆| 英吉沙县| 曲阳县| 蒲城县| 建瓯市| 浮山县| 南充市| 北安市| 雅安市| 吴江市| 琼海市| 满洲里市| 安福县| 耿马| 土默特左旗| 菏泽市| 南江县| 越西县|