【问题标题】:How to check if existing database matches program's format如何检查现有数据库是否与程序格式匹配
【发布时间】:2016-08-04 20:44:47
【问题描述】:

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

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

【问题讨论】:

    标签: sql derby javadb


    【解决方案1】:

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

    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. 使用java.sql.DatabaseMetaData提供的API及其getSchemas()getTables()getColumns()等方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2019-04-14
      相关资源
      最近更新 更多