如何检查现有数据库是否与程序格式匹配

时间:2016-08-04 20:44:48

标签: sql derby javadb

首先,我是Java DB编程的新手,所以也许我的方法是错误的。所以请记住这一点。现在的问题是:

我的程序让用户打开现有的Java Derby数据库。当它打开时,我想检查数据库是否包含正确的表,并且每个表都有正确的列 - 不仅是名称,还有类型。到目前为止,我尝试创建每个表,如果它抛出异常,那么我知道该表存在。现在我需要检查列类型。这样做的最佳做法是什么?硬编码检查每个列类型是否在catch块中回答here

1 个答案:

答案 0 :(得分:0)

如果你想弄清楚数据库中有哪些表,每个表有哪些列等,有(至少)两种简单的方法:

  1. 针对Derby系统目录发出SQL查询,例如

    选择s.schemaname || '' || t.tablename
     来自sys.systables t,sys.sysschemas s
     其中t.schemaid = s.schemaid       和t.tabletype =' T'  由s.schemaname,t.tablename;

  2. 订购
  3. 使用getSchemas()提供的API及其getTables()getColumns()import org.gradle.api.Plugin import org.gradle.api.Project class FooPlugin implements Plugin<Project> { void apply(Project target) { target.extensions.create("foo", FooExtension) target.task('sometask', type: GreetingTask) } } class FooExtension{ def sayHello(String text) { println "Hello " + text } }

  4. 等方法