精彩的人生

          好好工作,好好生活

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

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

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

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

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

          很遺憾,我沒有找到類似前面的句子。正當(dāng)我打算放棄的時候發(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 兵臨城下
          真的有用嗎!  回復(fù)  更多評論
            

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

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

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

            回復(fù)  更多評論
            

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

          主站蜘蛛池模板: 克山县| 涡阳县| 宜兰县| 永春县| 东丽区| 县级市| 炎陵县| 鄂温| 噶尔县| 龙江县| 济阳县| 文昌市| 礼泉县| 托克逊县| 托克托县| 左权县| 二连浩特市| 正安县| 湛江市| 保靖县| 成武县| 阜南县| 渝中区| 四会市| 石楼县| 贵州省| 阳东县| 闵行区| 稻城县| 竹山县| 江城| 夏邑县| 四平市| 盐亭县| 高雄县| 金华市| 泗水县| 琼海市| 韩城市| 西乌| 通州区|