Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheDerby-Check数据库已经创建了吗?_Java_Database_Derby - Fatal编程技术网

Java ApacheDerby-Check数据库已经创建了吗?

Java ApacheDerby-Check数据库已经创建了吗?,java,database,derby,Java,Database,Derby,使用ApacheDerby和Java(J2ME,但我不认为这有什么区别)有没有任何方法可以检查数据库是否已经存在并包含一个表?我不知道有什么方法,只知道很少有解决方法,不像MySQL,我们有if-EXIST功能 你要做的是,尝试连接到数据库,如果不能,它可能不在那里。在成功连接之后,您可以执行一个简单的选择,比如从TABLE_NAME中选择count(*),以了解该表是否存在。您将取决于例外情况。甚至在Sun的官方例子中,我也看到过类似的工作 在Oracle中,我们有字典表来了解数据库对象。我怀

使用ApacheDerby和Java(J2ME,但我不认为这有什么区别)有没有任何方法可以检查数据库是否已经存在并包含一个表?

我不知道有什么方法,只知道很少有解决方法,不像MySQL,我们有if-EXIST功能

你要做的是,尝试连接到数据库,如果不能,它可能不在那里。在成功连接之后,您可以执行一个简单的选择,比如从TABLE_NAME中选择count(*),以了解该表是否存在。您将取决于例外情况。甚至在Sun的官方例子中,我也看到过类似的工作

在Oracle中,我们有字典表来了解数据库对象。我怀疑我们在德比中是否有这样的比赛

[编辑]

我发现有一种方法可以知道这个表是否存在。请尝试,从SYSTABLES中选择tablename。它用于检查表的存在性,对于检查数据库,您可能需要执行类似的操作,我在上面解释过。

,您还可以使用返回一个对象,然后使用,当然,一旦连接到数据库。这有一个优点,就是可以使用JDBC驱动程序来处理任何数据库


为了检查数据库是否存在,如果您以嵌入式方式使用Derby,或者服务器在同一台机器上,您可以检查数据库的文件夹是否存在。不过有点笨拙。我会按照Adeel的建议做,并尝试连接,如果异常不存在,则捕获异常。

我会建议获取DatabaseMetaData对象,然后使用getTables(null,null,null,new String[]{“TABLE”})方法从中返回结果集。使用ResultSet的next()方法(返回布尔值)测试是否存在任何表。如果测试结果为真,则表示存在表。False,则数据库为空。

另请参见