DatabaseMetaData
Методы интерфейса DatabaseMetaData позволяют получить информацию о базе данных. Получить объект DatabaseMetaData metaData можно так:
В примере baza.getConnection имеет тип Connection.
Теперь получим сведения о базе данных, в примере речь идёт о Firebird (работу с Firebird см. в статье JDBC), но можно исследовать и другую базу. Кстати, о работе с блоком try/catch можно прочесть в статье Exception.
Итак, информация о базе данных.
Название сервера базы:
Версия сервера:
Имя драйвера:
Версия драйвера:
Пользователь:
Типы таблиц:
Таблицы : получить имя и описание (description) таблицы PARAMETER:
Матем. функции :
Строковые функции:
Системные функции:
Дата/Время функции:
Символы для имён, кроме стандартных :
Термин для «схема»:
Термин для «процедура»:
Термин для «каталог»:
Макс. длина имени колонки: (результат 31)
Макс. длина имени процедуры: (результат 31)
Макс. длина имени таблицы: (результат 31)
Макс. кол колонок в SELECT: (результат = 0, т.е. there is no limit or the limit is not known)
Макс. длина SQL запроса: (результат = 0, т.е. there is no limit or the limit is not known)
Макс. кол колонок в TABLE: (результат 32767)
Макс. кол одновременных соединений с базой: (результат = 0, т.е. there is no limit or the limit is not known)
Получаем:
Как соединиться с базой данных?
Вот так:
Connection con = DriverManager.getConnection(url, login, pass);
тип всех аргументов String.
Пример для FireBird:
Здесь соединяемся с базой TUTORIAL.FDB, путь к базе: HJava_FB.
Statement
Объект Statement нужен для выполнения запросов. Простейший метод получения объекта:
Как выполнить запрос к базе данных?
Если предполагается, что запрос вернёт выборку данных, то запрос можно выполнить методом executeQuery:
ResultSet rs = st.executeQuery («SELECT * FROM PARAMETERS);
И что теперь делать с полученным объектом ResultSet rs? Выбрать из него данные, вот так:
В этом примере получаем из базы данных всего одну строку из таблицы Parameters. Далее находим количество колонок в выборке:
В цикле while (rs.next()) получаем очередную строку из выборки, в нашем примере это будет только одна строка. Получив строку, перебираем элементы этой строки в цикле
и полученные элементы устанавливаем в вектор vParameters.
Почему в цикле for отсчёт идёт с 1, а не с нуля, как обычно? В выборке типа ResultSet отсчёт строк и столбцов ведут с 1.
Как ввести новую строку в таблицу базы данных?
Можно так: