1. Obtenha uma instância deste objeto
Conexão con; con
2. Uso do método GetTables
protótipo:
ResultSet DatabaseMetadata.getTables (String Catalog, String Schema, String tableName, String [] Type)
Este método pode retornar o conjunto de resultados de resultados, com 5 colunas no conjunto de resultados. Se exceder os limites, será relatada uma exceção fora dos limites.
Função Descrição: Obtenha as informações da tabela dos parâmetros especificados
Descrição do parâmetro:
Parâmetros: Catálogo: Nome do diretório, geralmente vazio.
Parâmetros: Esquema: Nome do banco de dados, para o nome de usuário do Oracle Parâmetro: TableName: Tabela Nome Parâmetro: Tipo: Tabela Tipo (Tabela | View)
Nota: Durante o uso, o nome do parâmetro deve estar em capital. Caso contrário, você recebe algo.
3. Uso do método getColumns
Descrição da função: Obtenha informações da coluna da tabela especificada.
protótipo:
ResultSet DatabaseMetadata getColumns (String Catalog, String Schema, String tableName, String ColumnName)
Descrição do parâmetro:
Catálogo de parâmetros: Nome da categoria Esquema de parâmetro: Esquema do usuário Nome do parâmetro TableName: Banco de dados Tabela Nome do parâmetro ColumnName: Nome da coluna
4. Métodos de uso de getPrimaryKeys
Função Descrição: Obtenha as informações principais da tabela especificada.
protótipo:
ResultSet DatabaseMetadata getPrimaryKeys (String Catalog, String Schema, String tableName)
Descrição do parâmetro:
Catálogo de parâmetros: Nome da categoria Esquema de parâmetro: Esquema do usuário Nome do parâmetro TableName: Nome da tabela do banco de dados
Nota: Não se esqueça de especificar o nome da tabela, caso contrário, o valor de retorno não terá nada.
5. Método.
Função Descrição: Obtenha as informações do tipo de dados do banco de dados atual.
6. Métodos de uso de getExportedkeys
Descrição da função: Obtenha informações de chave estrangeira para a tabela especificada.
Descrição do parâmetro:
Catálogo de parâmetros: Nome da categoria Esquema de parâmetro: Esquema do usuário Nome do parâmetro TableName: Nome da tabela do banco de dados
Vamos explicar esses dois parâmetros usando o MySQL e o Oracle como exemplos.
A estrutura organizacional dos dados Oracle e MySQL é completamente diferente. Em termos de aparência intuitiva, as maneiras de anexar tabelas e vistas são diferentes. No Oracle, um mecanismo de gerenciamento de usuários é adotado. Quando tabelas e visualizações são anexadas a um determinado usuário, o usuário se tornará um "esquema" do Oracle; No MySQL, tabelas e vistas estão diretamente anexadas ao banco de dados. Dessa forma, obter o catálogo no oralce fica nulo, e obter o esquema é capitalizado é uma lista de nomes de usuário. O catálogo obtido no MySQL é a lista de nomes do banco de dados e o esquema é nulo. Os leitores podem testar os dois métodos a seguir fornecidos pelo DatabaseMetadata e retornam o tipo de dados do resultado.
// Obtenha a definição de categoria
rs = dbmd.getCatalogs ();
// Obtenha a definição de padrão
rs = dbmd.getschemas ();
Com base na análise acima:
Se o banco de dados for MySQL: o primeiro catálogo de parâmetros pode ser o nome do banco de dados. Quando este item é nulo, é o nome do banco de dados especificado na sequência de URL e o segundo esquema de parâmetros, preencha o NULL;
Se o banco de dados for oralce: o primeiro catálogo de parâmetros é nulo, o segundo esquema de parâmetro será preenchido no nome de usuário maiúsculo, como "Scott". Se o item for nulo, o escopo da consulta é todos os usuários de esquema.
Análise de valor de retorno
O valor de retorno do método getTables é um conjunto de resultados (ResultSet). Para as informações no conjunto de resultados, mais de 20 itens são reservados ao JDK1.5 para obter as informações relevantes da tabela. No entanto, nem todos os dados retornarão esses mais de 20 itens. Muitas vezes, podemos usar quatro itens:
Tabela_schem: para o Oracle, é um nome de usuário capitalizado e nulo para MySQL.
Tabela_name: o nome da tabela.
Tabela_cat = nulo para o nome do Oracle e do banco de dados para MySQL.
Tabela_type = Tipo de tabela, usado para tabela e visualização com base em um item na quarta matriz do tipo de parâmetro.
import 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.util.ArrayList;import java.util.List;public class database {private string url = "jdbc: oracle: thin: @localhost: 1521: zhyl"; // endereço do servidor:, número da porta: 1521, nome do banco de dados Nome: Zhyl. String private String nome de usuário = "andatabase"; private string pw = "oracl"; conexão privada Conn = null; // O nome do usuário e a senha são criados por você mesmo. Public Connection OpenConn () {try {class.Forname ("oracle.jdbc.driver.oracledriver"); tente {conn = driverManager.getConnection (url, nome de usuário, pw);} catch (sqLexception e) {// TODO} Catch Blocke.PrintStace () {// TODO} capt de captura de captura de captura.PrintStace; TODO gerado automaticamente Blocke.printStackTrace ();} retornar conn;} public ResultSet ExecuteQuery (string sql) {dababase db = new dababase (); resultado rs = null; conexão con = db.openconn (); tente {declaração sm = con.createstatement (); rs = sm.executeQuery (SQL); } catch (sqLexception e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } retornar rs;} public void Close () {try {Conn.Close (); } catch (sqLexception e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); }} // Obtenha os nomes da tabela de todas as tabelas no banco de dados e adicione -as à estrutura da lista. Lista pública gettablenamelist (conexão conn) lança sqlexception {databaseMetadata dbmd = conn.getMetadata (); // Acesse todas as tabelas sob o usuário atual e o resultado do resultado rs = dbmd.gettables ("null", "eatabase", "%", nova string [] }); // system.out.println ("kkkkkkkkk"+dbmd.gettables ("null", "%", "%", new string [] {"tabela"}); list tablenamelist = newList (); while (rs.next ()); Tablenamelist;} // Obtenha os nomes das colunas de todas as colunas na tabela de dados e adicione -as à estrutura da lista. Lista pública getColumnNamElist (Connection Conn, String tableName) lança SqLexception {DATABASEMETADATA DBMD = Conn.getMetAdata (); ResultSet rs = dbmd.getColumns (null, "%", tableName, "%"); while (rs.Next ()) {columnNameList.add (rs.getString ("column_name");} retornar colunNNameList;} public static void main (string s []) lança sqLexception {dababase dbConn = new dabas (); Connection = dbconn.Opn.Openn (dBAnn) (DBAnnT) (DBAnnT) (dBAnTn) (dbconn) (dbconn) (dbconn); falhou "); elSesystem.out.println (" Conn bem -sucedido "); tente {list tabelist = dbconn.gettablenamelist (conn); // busca todas as tabelas do usuário atual // list de tabela de tabela de tabela = dbconn.getColumnnamel (Conn," Login "); // o nome da tabela deve ser em upreche. System.out.println (tableList.size ()); para (objeto objeto: tableList) {string ss = (string) object; system.out.println (ss);}} catch (sqLexception e) {e.printStackTrace ();} finalmente {if (conn! = null) {try {conn.close ();} catch (sqLexception e) {E.O exposto acima está o conteúdo completo da consulta Java todas as tabelas do banco de dados Oracle, DatabaseMetadata (explicação detalhada) trazida a você pelo editor. Espero que todos apoiem mais wulin.com ~