1. Получите экземпляр этого объекта
Connection con; con = drivermanager.getConnection (URL, имя пользователя, пароль); DatabaseMetAdata dbmd = con.getMetAdata ();
2. Использование метода GetTables
Прототип:
ResultSet DatabaseMetAdata.getTables (String Catalog, String Schema, String TableName, String [] Тип)
Этот метод может вернуть результат результатов, с 5 столбцами в наборе результатов. Если он превышает границы, будет сообщено об исключении.
Описание функции: Получить информацию о таблице указанных параметров
Описание параметра:
Параметры: Каталог: имя каталога, обычно пустое.
Параметры: Схема: Имя базы данных, для Oracle Parameter: TableName: Имя таблицы Параметр: Тип: Тип таблицы (Таблица | Просмотр)
Примечание. Во время использования имя параметра должно быть в капитале. В противном случае вы что -то получаете.
3. Использование метода GetColumns
Описание функции: Получить информацию столбца указанной таблицы.
Прототип:
ResultSet DatabaseMetAdata getColumns (String Catalog, String Schema, String TableName, String ColumnName)
Описание параметра:
Каталог параметров: имя категории Параметр Схема: Имя схемы пользователя Параметр Имя таблицы: Имя таблицы базы данных.
4. Методы использования GetPrimaryKys
Описание функции: Получите информацию о первичном ключе указанной таблицы.
Прототип:
ResultSet DatabaseMetAdata getPrimaryKeys (String Catalog, String Schema, String TableName)
Описание параметра:
Каталог параметров: имя категории Параметр Схема: Имя схемы пользователя Параметр ПАРАМЕТА ИМЯ: Имя таблицы базы данных
Примечание. Обязательно укажите имя таблицы, в противном случае возвратное значение ничего не будет иметь.
5. Метод. Использование getTypeInfo ()
Описание функции: Получите информацию типа данных текущей базы данных.
6. Методы использования GetExportedKeys
Описание функции: Получите информацию об иностранном ключе для указанной таблицы.
Описание параметра:
Каталог параметров: имя категории Параметр Схема: Имя схемы пользователя Параметр ПАРАМЕТА ИМЯ: Имя таблицы базы данных
Давайте объясним эти два параметра, используя MySQL и Oracle в качестве примеров.
Организационная структура данных Oracle и MySQL совершенно отличается. С точки зрения интуитивного внешнего вида, способы прикрепления таблиц и представлений различны. В Oracle принимается механизм управления пользователями. Когда таблицы и представления прикрепляются к определенному пользователю, пользователь станет «схемой» Oracle; В MySQL таблицы и представления напрямую прикреплены к базе данных. Таким образом, получение каталога в Oralce становится NULL, а получение схемы получается в списке имен пользователей. Каталог, полученный в MySQL, является списком имен базы данных, а схема - нулевая. Читатели могут проверить следующие два метода, предоставленные DatabaseMetAdata, и возвращают оба типа данных.
// Получить определение категории
rs = dbmd.getCatalogs ();
// Получить определение шаблона
rs = dbmd.getschemas ();
На основе приведенного выше анализа:
Если база данных - MySQL: тогда первым каталогом параметров может быть имя базы данных. Когда этот элемент является нулевым, это имя базы данных, указанное в строке URL, и вторая схема параметра, заполните NULL;
Если база данных является ораторской: то первый каталог параметров является нулевым, вторая схема параметров заполняется в имени пользователя в верхнем регистре, таком как «Скотт». Если элемент является нулевым, прицел запроса - это все схемы пользователей.
Анализ возвращаемого значения
Возвратное значение метода GetTables - это набор результатов (ResultSet). Для получения информации в наборе результатов более 20 пунктов зарезервированы на JDK1.5 для соответствующей информации таблицы. Тем не менее, не все данные возвращают эти более 20 пунктов. Мы часто можем использовать четыре элемента:
Table_schem: для Oracle это капитализированное имя пользователя и NULL для MySQL.
Table_name: имя таблицы.
Table_cat = null для Oracle и имени базы данных для MySQL.
Table_type = тип таблицы, используемый для таблицы и просмотра на основе элемента в массиве четвертого типа параметров.
Импорт java.sql.connection; import java.sql.databasemetadata; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.UtliL. url = "jdbc: Oracle: thin: @localhost: 1521: Zhyl"; // Адрес сервера:, номер порта: 1521, Имя экземпляра базы данных: Zhyl. private String username = "andatabase"; частная строка pw = "oracl"; частное соединение conn = null; // Имя пользователя и пароль создаются самостоятельно. public Connection openconn () {try {class.forname ("oracle.jdbc.driver.oracledriver"); try {conn = Drivermanager.getConnection (url, имя пользователя, pw);} catch (sqlexception e) {// todo Auto-Gene-blocke.printStacktrace (); TODO Автогенерированный Catch Blocke.printStackTrace ();} return conn;} public ResultSet executequery (String sql) {dababase db = new dababase (); resultset rs = null; connection con = db.openconn (); try {ratement sm = con.createStatement (); rs = sm.executequery (sql); } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } return rs;} public void close () {try {conn.close (); } catch (sqlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }} // Получить имена таблиц всех таблиц в базе данных и добавьте их в структуру списка. Общедоступный список GetTablEnamelist (Connection Conn) Throws SQLexception {DataBaseMetAdata dbmd = conn.getMetAdata (); // Доступ к всем таблицам при нынешнем пользователе итабазе ResultSet rs = dbmd.gettables («null», «andatabase», «%», новая строка [] {«таблица» («null», «andatabase», «%», новая строка [] {«таблица» («null», «andatabase», «%». }); // system.out.println ("kkkkkkkkk"+dbmd.gettables ("null", "%", "%", new String [] {"table"})); List tableNamelist = new ArrayList (); while (rs.next ()) {tableNamelist.addd (rs.getstring (rs.next ()) {tableNamelist.Add (rs.gretString () {rs.) TableNamelist;} // Получить имена столбцов всех столбцов в таблице данных и добавить их в структуру списка. Общедоступный список GetColumnNamelist (соединение Conn, String TableName) Throws SQLexception {DataBaseMetAdata dbmd = conn.getMetAdata (); ResultSet rs = dbmd.getColumns (null, «%», TableName, «%»); List Colunnamelist = new ArrayList (); while (rs.next ()) {colunnamelist.add (rs.getString ("colun_name"));} return Colunnamelist;} public static void main (String s []) бросает sqlexception {dababase dbconn = new dababase (); connect connect = dbconn.opencon. Не удалось "); elsesystem.out.println (" conn успешно "); try {list tablelist = dbconn.gettablenamelist (conn); // Извлекать все таблицы текущего пользователя // list tablelist = dbconn.getcolumnnamelist (conn," login "); // Имя таблицы должно быть в верхнем приложении, все столбцы в стол. System.out.println (tablelist.size ()); для (объект объекта: TableList) {String SS = (String) Object; System.out.println (ss);}} catch (sqlexception e) {e.printstacktrace ();} наконец {if (conn!Выше приведено полное содержание Java -запроса все таблицы базы данных Oracle, DatabaseMetadata (подробное объяснение), принесенное вам редактором. Я надеюсь, что все будут поддерживать wulin.com больше ~