由資料庫名稱得到資料庫的表資訊,包括表的欄位和屬性,可以自動的生成資料庫持久層操作代碼。

package edu.whut.jdbc;

 

import java.sql.Connection;

 

import java.sql.DriverManager;

 

import java.sql.ResultSet;

 

import java.sql.ResultSetMetaData;

 

import java.sql.SQLException;

 

import java.sql.Statement;

 

public class Main {

 

public static void main(String[] args) {

 

try {

 

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

 

Connection conn = DriverManager

 

.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=sa");

 

Statement st = conn.createStatement();

 

ResultSet rs = st.executeQuery("show tables");

 

ResultSetMetaData meta = rs.getMetaData();

 

for (int i = 1; i <= meta.getColumnCount(); i++) {

 

System.out.print("Items:" + meta.getColumnName(i) + "\n");

 

while (rs.next()) {

 

System.out.print("tableName:" + rs.getString(i) + "\n");

 

ResultSet rs2 = conn.createStatement().executeQuery(

 

"select * from " + rs.getString(i));

 

ResultSetMetaData meta2 = rs2.getMetaData();

 

for (int i1 = 1; i1 <= meta2.getColumnCount(); i1++) {

 

System.out.print(meta2.getColumnName(i1) + "\n");

 

System.out.print(meta2.getColumnClassName(i1) + "\n");

 

}

 

}

 

}

 

} catch (InstantiationException e) {

 

e.printStackTrace();

 

} catch (IllegalAccessException e) {

 

e.printStackTrace();

 

} catch (ClassNotFoundException e) {

 

e.printStackTrace();

 

} catch (SQLException e) {

 

e.printStackTrace();

 

}

 

}

 

}



範例下載

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()