JAVA判断数据表是否在数据库中存在的方法

    xiaoxiao2026-03-06  11

    今天白天遇到一个问题,要求判断一个已知表名的表是否在数据库存在的方法,这种问题还是挺让人郁闷了,先GG,后baidu,结果找到的方法要么只能适用于专用的数据库,要么就是没有考虑到X排他锁的问题。不过还好想到了SUN的API,在java.sql包下面有这样一个接口DatabaseMetaData可以一用,方法很简单获取数据库meta中的表中是否有你要的就好,而且只要是你的JDBC驱动支持就好,通用性很强,写了点DEMO代码给大家参考 import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.ResultSet;//detec unknow tables by name// TableName:tablenamepublic class Main { public static void main(String[] argv) throws Exception { Connection c = null; //db connection DatabaseMetaData dbm = c.getMetaData(); ResultSet rs = dbm.getTables(null, null, "tablename", null); if (rs.next()) { System.out.println("Exists"); } else { System.out.println("Not Exist"); } }} 下面是getTables的函数原型 public ResultSet getTables(String catalog,String schemaPattern, String tableNamePattern,String[] types) throws SQLException 对应参数说明如下: catalog ,不用说了,目录名,一般就是数据库的名称 test的数据库就是test,null的话会搜索所有表 schemaPattern,是匹配数据表的模式,null的话就不考虑schema了 tableNamePattern,数据表名称的匹配,我上面直接用的表名,只能匹配一张表,这里可以用正则实现多表匹配 types数组,是数据表的类型,比如Mysql常用的MyISAM和InnoDB,可以查找多种类型的表 -------------------------------------------------------------------------------------- - 版权声明: - 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。 - 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。 - 文章标题: [SQL,Java]判断某一个已知表名的表是否在数据库中存在的方法 - 独立博客: 李大仁博客 - 永久链接:http://www.lidaren.com/archives/406 -------------------------------------------------------------------------------------- 以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
    转载请注明原文地址: https://ju.6miu.com/read-1307667.html
    最新回复(0)