八、JDBC——6-分析数据库信息

6-分析数据库信息

使用DatabaseMetaData分析数据库信息

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class DatabaseMetaDataTest {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test",
                "root",
                "stx12345");
        
        //获取DatabaseMetaData对象
        DatabaseMetaData dbmd = conn.getMetaData();
        //获取MySQL支持的所有表类型
        ResultSet rs = dbmd.getTableTypes();
        System.out.println("MySQL支持的所有表类型:");
        printResultSet(rs);
        
        //获取当前数据库的全部数据表
        rs = dbmd.getTables(null, null, "%", new String[]{"TABLE"});
        System.out.println("当前数据库里的数据表信息:");
        printResultSet(rs);
        
        //获取test2表的主键
        rs = dbmd.getPrimaryKeys(null, null, "test2");
        System.out.println("test2表中的主键信息:");
        printResultSet(rs);
        
        //获取当前数据库的全部存储过程
        rs = dbmd.getProcedures(null, null, "%");
        System.out.println("当前数据库中存储过程信息");
        printResultSet(rs);
        
        
    }
    public static void printResultSet(ResultSet rs) throws SQLException{
        ResultSetMetaData rsmd = rs.getMetaData();
        //打印ResultSet的所有列标题
        for(int i=0;i<rsmd.getColumnCount();i++){
            System.out.println(rsmd.getColumnName(i+1)+"\t");
        }
        System.out.println("\n");
        //打印ResultSet中的全部数据
        while(rs.next()){
            for(int i=0;i<rsmd.getColumnCount();i++){
                System.out.println(rs.getString(i+1)+"\t");
            }
            System.out.println("\n");
        }
        rs.close();
    }
}

 

posted @ 2017-08-02 20:34  丶theDawn  阅读(123)  评论(0编辑  收藏  举报