精彩的人生

好好工作,好好生活

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(nullnull"yourTable"null);
if (rs.next()) {
//yourTable exist
}
else {
//yourTable not exist
}

 

posted on 2006-06-28 17:12 hopeshared 阅读(2790) 评论(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,得多多向你请教啊,哈哈  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: