1. Obtenga una instancia de este objeto
Connection Con; Con = Drivermanager.getConnection (url, nombre de usuario, contraseña); dataBASEMETAdata dbmd = con.getMetadata ();
2. Uso de Métodos Gettables
prototipo:
ResultSet dataBASEMETAdata.gettables (catálogo de cadenas, esquema de cadena, cadena Tablename, String [] Tipo)
Este método puede devolver el conjunto de resultados de resultados, con 5 columnas en el conjunto de resultados. Si excede los límites, se informará una excepción fuera de los límites.
Descripción de la función: Obtenga la información de la tabla de los parámetros especificados
Descripción del parámetro:
Parámetros: Catálogo: nombre del directorio, generalmente vacío.
Parámetros: esquema: nombre de la base de datos, para el nombre de usuario Oracle Parámetro: Tablename: Nombre de la tabla Parámetro: Tipo: Tipo de tabla (Tabla | Vista)
Nota: Durante el uso, el nombre del parámetro debe estar en capital. De lo contrario, obtienes algo.
3. Uso del método getColumns
Descripción de la función: Obtener información de columna de la tabla especificada.
prototipo:
ResultSet DataBASEMETAdata getColumns (catálogo de cadenas, esquema de cadena, string tableName, string columnName)
Descripción del parámetro:
Catálogo de parámetros: Categoría Nombre Parámetro Esquema: Nombre del esquema de usuario Parámetro Tablen Nombre: Base de datos Nombre de la tabla de parámetro Nombre de columna: Nombre de la columna
4. Métodos de uso de GetPrimaryKeys
Descripción de la función: Obtenga la información clave principal de la tabla especificada.
prototipo:
ResultSet DataBASEMETAdata getPrimaryKeys (catálogo de cadenas, esquema de cadena, nombre de tela de cadena)
Descripción del parámetro:
Catálogo de parámetros: Nombre de la categoría Esquema de parámetros: esquema del usuario Nombre de parámetro Tablen Nombre: Nombre de la tabla de la base de datos
Nota: Asegúrese de especificar el nombre de la tabla, de lo contrario, el valor de retorno no tendrá nada.
5. Método. Uso de GetTypeInfo ()
Descripción de la función: Obtenga la información de tipo de datos de la base de datos actual.
6. Métodos de uso de GetExportedKeys
Descripción de la función: Obtenga información de clave extranjera para la tabla especificada.
Descripción del parámetro:
Catálogo de parámetros: Nombre de la categoría Esquema de parámetros: esquema del usuario Nombre de parámetro Tablen Nombre: Nombre de la tabla de la base de datos
Expliquemos estos dos parámetros usando MySQL y Oracle como ejemplos.
La estructura organizativa de los datos de Oracle y MySQL es completamente diferente. En términos de apariencia intuitiva, las formas de colocar tablas y vistas son diferentes. En Oracle, se adopta un mecanismo de gestión del usuario. Cuando las tablas y las vistas se adjuntan a un determinado usuario, el usuario se convertirá en un "esquema" de Oracle; En MySQL, las tablas y vistas están directamente conectadas a la base de datos. De esta manera, obtener un catálogo en oral se vuelve nulo, y obtener el esquema se capitaliza es una lista de nombres de usuarios. El catálogo obtenido en MySQL es la lista de nombres de la base de datos, y el esquema es nulo. Los lectores pueden probar a través de los siguientes dos métodos proporcionados por DatabAseMetadata, y devuelven ambos el tipo de datos de resultados.
// Obtener la definición de categoría
rs = dbmd.getCatalogs ();
// Obtener la definición del patrón
rs = dbmd.getSchemas ();
Basado en el análisis anterior:
Si la base de datos es MySQL: entonces el primer catálogo de parámetros puede ser el nombre de la base de datos. Cuando este elemento es nulo, es el nombre de la base de datos especificado en la cadena de URL, y el segundo esquema de parámetros, complete nulo;
Si la base de datos es oral: entonces el primer catálogo de parámetros es nulo, el segundo esquema de parámetros se llena en el nombre de usuario mayúscula, como "Scott". Si el elemento es nulo, el alcance de la consulta es todos usuarios de esquema.
Análisis de valor de retorno
El valor de retorno del método getTable es un conjunto de resultados (ResultSet). Para la información en el conjunto de resultados, se reservan más de 20 elementos para JDK1.5 para la información relevante de la tabla. Sin embargo, no todos los datos devolverán estos más de 20 elementos. A menudo podemos usar cuatro elementos:
Table_schem: para Oracle, es un nombre de usuario capitalizado y nulo para MySQL.
Table_name: el nombre de la tabla.
Table_cat = NULL para Oracle y el nombre de la base de datos para MySQL.
Table_type = Tipo de tabla, utilizado para la tabla y la vista basada en un elemento en la matriz de tipo de parámetro cuarto.
import java.sql.connection; import java.sql.databasemetadata; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.StaTatement; import java.util.arraylist; import java.Utils; {private String url = "jdbc: oracle: Thin: @localhost: 1521: zhyl"; // Dirección del servidor :, Número de puerto: 1521, base de datos Nombre de instancia: Zhyl. Private String UserName = "Andatabase"; private String pw = "oracl"; private conexión conn = null; // El nombre de usuario y la contraseña son creados por usted mismo. Public Connection OpenConn () {try {class.forname ("oracle.jdbc.driver.oracledriver"); try {conn = drivermanager.getConnection (url, usame, pw);} catch (sqlexception e) {// toDO auto-Generated Catch Blocke.PrintstackTrace ();}} Catscept (Class CASSECTING (CASSECTING) {// TODO Generado automático BLOCKE.PRINTSTACKTRACE ();} return Conn;} public resultset ExecUteQuery (String SQL) {dababase db = new DabAbase (); resultSet rs = null; Connection con = db.openconn (); intente {Declaración sm = Con.CreateStatement (); rs = sm.ExecuteQuery (SQL); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); } return rs;} public void Close () {try {conn.close (); } Catch (Sqlexception e) {// TODO BLOCK AUTO GENERADO E.PRINTSTACKTRACE (); }} // Obtenga los nombres de la tabla de todas las tablas en la base de datos y agréguelos a la estructura de la lista. Lista pública GetTableNAmelist (Connection Conn) lanza SQLException {DataBASEMETADATA DBMD = conn.getMetadata (); // Acceda a todas las tablas en el usuario actual y la TATABASE RSSET rs = dbmd.gettables ("null", "yatabase", "%", nueva cadena [] {"Tabla" }); // system.out.println ("kkkkkkkkk"+dbmd.gettables ("null", "%", "%", new String [] {"table"})); list tlableAmelist = new ArrayList (); while (rs.Next ()) {TablenamEnst.add (rs.getstring ("table_");}); TablenAmelist;} // Obtenga los nombres de columnas de todas las columnas en la tabla de datos y agréguelos a la estructura de la lista. Lista pública getColumnnamElist (Connection Conn, String TableName) lanza SQLException {DataBASEMETADATA dBmd = conn.getMetadata (); resultset rs = dbmd.getColumns (null, "%", tablename, "%"); lista de columna de columna de columna = new ArrayList ();; while (rs.next()) {columnNameList.add(rs.getString("COLUMN_NAME"));}return columnNameList;}public static void main(String s[]) throws SQLException{dababase dbConn = new dababase();Connection conn = dbConn.OpenConn();if(conn==null)System.out.println("Conn fallido "); elsesystem.out.println (" conn exitoso "); try {list tableList = dbconn.gettablenamElist (conn); // fetch todas las tablas del usuario actual // list tableList = dbconn.getcolumnnamelist (Conn," login "); // El nombre de la tabla debe estar en Uppercase, sale todas las columnas de las columnas de las columnas de las columnas de la tabla de corriente (Conn," login "); System.out.println (TableList.Size ()); for (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.PRINTSTABLo anterior es el contenido completo de la consulta Java todas las tablas de la base de datos Oracle, DataBASEMetAdata (explicación detallada) que le ofrece el editor. Espero que todos apoyen a Wulin.com ~