Мы создали Java-приложение, которое использует базу данных JavaDB в среде IDE Netbeans. Мы хотим, чтобы программа при каждом запуске проверяла, созданы ли уже таблицы базы данных, и в противном случае создавала их. Как мы это делаем? спасибо
Вопрос
JavaDB - проверка существования базы данных
- возможный дубликат Как проверить, существует ли база данных в Hsqldb /Дерби? Raedwald 02.09.2013
- ответ чесночника правильный, только я добавляю, что поиск в таблице должен быть в верхнем регистре, потому что, несмотря на то, что вы создали свою таблицу в нижнем регистре, метаданные в верхнем регистре Marco Van 10.07.2017
Ответы
Ответ 1 · рейтинг 6 · Istao
Я использую :
DatabaseMetaData metas;
ResultSet tables;
Statement stat;
m_connexion = DriverManager.getConnection("jdbc:derby:mybase;create=true");
metas = m_connexion.getMetaData();
stat = m_connexion.createStatement();
tables = metas.getTables(m_connexion.getCatalog(), null, "MYTABLE", null);
if (!tables.next())
stat.execute(
"CREATE TABLE APP.MYTABLE (" // etc.
... и это работа для меня.
Ответ 2 · dubmojo
Тест Истао на существование таблицы не работал у меня с Дерби. Таблица так и не была найдена, хотя она была создана ранее. Чего не хватает, так это указать TABLE_SCHEM как "APP", а затем установить тип таблицы, чтобы включить "TABLE". Возможно, использование null работало в предыдущих версиях, но использование Derby 10.12 не находит ранее созданную таблицу с этими параметрами, установленными на null.
Connection conn = DriverManager.getConnection(DB_PROTO + DB_NAME + ";create=true");
DatabaseMetaData metas = conn.getMetaData();
ResultSet tables = metas.getTables(conn.getCatalog(), "APP", TABLE_NODES, new String[] {"TABLE"});
if (!tables.next()) {
Statement stat = conn.createStatement();
stat.execute("create table " + ...
Надеюсь, это поможет кому-то еще.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Запутался в использовании проекта SpringMVC Vs Java EE в Netbeans
- Настройка проекта maven-web (из существующего проекта netbeans-maven-web)
- Проблема с профилем Netbeans JUnit 4
- Использование netbeans в качестве IDE для Python
- Почему использование подготовленного оператора завершается ошибкой с нулевыми значениями и успешным с
- Аннотация расписания блокирует развертывание веб-приложения maven в Netbeans 7.4