欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

基于Java获取Mysql表结构的步骤

程序员文章站 2022-06-02 21:13:24
...

基于Java获取Mysql表结构的方法 Class.forName("com.mysql.jdbc.Driver").newInstance();Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/MALL?user=rootpassword=123456");DatabaseMetaData meta = (DatabaseMetaData) conn.ge

基于Java获取Mysql表结构的方法
Class.forName("com.mysql.jdbc.Driver").newInstance();
	Connection conn = DriverManager
				.getConnection("jdbc:mysql://localhost:3306/MALL?user=root&password=123456");
	DatabaseMetaData meta = (DatabaseMetaData) conn.getMetaData();

	ResultSet  rs = meta.getColumns(null, "%", "T_Mall_ReturnOrderInfo", "%");
		
	while (rs.next())  {  
            // table catalog (may be null)  
            String tableCat = rs.getString("TABLE_CAT");  
            // table schema (may be null)  
            String tableSchemaName = rs.getString("TABLE_SCHEM");  
            // table name  
            String tableName_ = rs.getString("TABLE_NAME");  
            // column name  
            String columnName = rs.getString("COLUMN_NAME");  
            
            // SQL type from java.sql.Types  
            int dataType = rs.getInt("DATA_TYPE");  
            
            // Data source dependent type name, for a UDT the type name is  
            // fully qualified  
            String dataTypeName = rs.getString("TYPE_NAME"); 
            System.out.println(columnName + "    " + dataTypeName);
            // table schema (may be null)  
            int columnSize = rs.getInt("COLUMN_SIZE");  
            // the number of fractional digits. Null is returned for data  
            // types where DECIMAL_DIGITS is not applicable.  
            int decimalDigits = rs.getInt("DECIMAL_DIGITS");  
            // Radix (typically either 10 or 2)  
            int numPrecRadix = rs.getInt("NUM_PREC_RADIX");  
            // is NULL allowed.  
            int nullAble = rs.getInt("NULLABLE");  
            // comment describing column (may be null)  
            String remarks = rs.getString("REMARKS");  
            // default value for the column, which should be interpreted as  
            // a string when the value is enclosed in single quotes (may be  
            // null)  
            String columnDef = rs.getString("COLUMN_DEF");  
            //                
            int sqlDataType = rs.getInt("SQL_DATA_TYPE");  
            //                
            int sqlDatetimeSub = rs.getInt("SQL_DATETIME_SUB");  
            // for char types the maximum number of bytes in the column  
            int charOctetLength = rs.getInt("CHAR_OCTET_LENGTH");  
            // index of column in table (starting at 1)  
            int ordinalPosition = rs.getInt("ORDINAL_POSITION");  
            // ISO rules are used to determine the nullability for a column.  
            // YES --- if the parameter can include NULLs;  
            // NO --- if the parameter cannot include NULLs  
            // empty string --- if the nullability for the parameter is  
            // unknown  
            String isNullAble = rs.getString("IS_NULLABLE");  
            // Indicates whether this column is auto incremented  
            // YES --- if the column is auto incremented  
            // NO --- if the column is not auto incremented  
            // empty string --- if it cannot be determined whether the  
            // column is auto incremented parameter is unknown  
            String isAutoincrement = rs.getString("IS_AUTOINCREMENT");  
            System.out.println(tableCat + "-" + tableSchemaName + "-" + tableName_ + "-" + columnName + "-"  
                    + dataType + "-" + dataTypeName + "-" + columnSize + "-" + decimalDigits + "-" + numPrecRadix  
                    + "-" + nullAble + "-" + remarks + "-" + columnDef + "-" + sqlDataType + "-" + sqlDatetimeSub  
                    + charOctetLength + "-" + ordinalPosition + "-" + isNullAble + "-" + isAutoincrement + "-");
        }  
	conn.close();

?