八、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(); } }