生活随笔
收集整理的這篇文章主要介紹了
通过java查询数据库表结构
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
public static void getConnAndTableStruct() {Connection connection = null;PreparedStatement pstmt = null;ResultSetMetaData rsmd = null;try {// mysql連接//Class.forName("org.gjt.mm.mysql.Driver");//connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");// oracle連接Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@192.168.12.12:1521:db";connection=DriverManager.getConnection(url,"manager","manager");pstmt = (PreparedStatement) connection.prepareStatement("select * from A_STAT");pstmt.execute(); // 這點(diǎn)特別要注意:如果是Oracle而對(duì)于mysql可以不用加.rsmd = (ResultSetMetaData) pstmt.getMetaData();//className = "User";//tableName = "user";for (int i = 1; i < rsmd.getColumnCount() + 1; i++) {//rsmd.getColumnName(i);//rsmd.getColumnClassName(i).substring(rsmd.getColumnClassName(i).lastIndexOf(".") + 1);System.out.println(rsmd.getColumnClassName(i));System.out.println(rsmd.getColumnName(i));System.out.println(rsmd.getColumnTypeName(i));System.out.println(rsmd.getPrecision(i));System.out.println(rsmd.getScale(i));System.out.println(rsmd.isNullable(i));//0 不能為空 1可以為空System.out.println("=============================");System.out.println("=============================");System.out.println("=============================");System.out.println("=============================");System.out.println("=============================");System.out.println("=============================");// System.out.println(rsmd.getColumnDisplaySize(i));
// System.out.println(rsmd.getColumnLabel(i));
// System.out.println(rsmd.getPrecision(i));
// System.out.println(rsmd.getColumnDisplaySize(i));
// System.out.println(rsmd.getColumnDisplaySize(i));
// System.out.println(rsmd.getColumnName(i) + " " + rsmd.getColumnTypeName(i) + " " + rsmd.getColumnClassName(i) + " " + rsmd.getTableName(i));}} catch (ClassNotFoundException cnfex) {cnfex.printStackTrace();} catch (SQLException sqlex) {sqlex.printStackTrace();}}
ResultSetMetaData 對(duì)象可以用于查找 ResultSet 中的列的類型和特性。
方法索引?
getCatalogName(int)?
獲得列的表的目錄名。?
getColumnCount()?
獲得 ResultSet 中的列數(shù)。?
getColumnDisplaySize(int)?
獲得列的正常的最大字符寬度。?
getColumnLabel(int)?
獲得打印輸出和顯示的建議列標(biāo)題。?
getColumnName(int)?
獲得列名。?
getColumnType(int)?
獲得一個(gè)列的 SQL 類型。?
getColumnTypeName(int)?
獲得一個(gè)列的數(shù)據(jù)源特定的類型名。?
getPrecision(int)?
獲得一個(gè)列的十進(jìn)制數(shù)字的位數(shù)。?
getScale(int)?
獲得一個(gè)列的十進(jìn)制小數(shù)點(diǎn)右面數(shù)字的位數(shù)。?
getSchemaName(int)?
獲得一個(gè)列的表的模式。?
getTableName(int)?
獲得列的表名。?
isAutoIncrement(int)?
列是否自動(dòng)計(jì)數(shù),因此它是只讀的。?
isCaseSensitive(int)?
列是否區(qū)分大小寫。?
isCurrency(int)?
列是否是通用的。?
isDefinitelyWritable(int)?
對(duì)列的寫操作是否一定成功。?
isNullable(int)?
在該列中是否可以放一個(gè) NULL 值。?
isReadOnly(int)?
列是否是不可寫的。?
isSearchable(int)?
該列是否是可以查詢的。?
isSigned(int)?
該列是否是有符號(hào)數(shù)。?
isWritable(int)?
對(duì)該列的寫操作是否會(huì)成功。
轉(zhuǎn)載于:https://www.cnblogs.com/xavijing/p/3534683.html
總結(jié)
以上是生活随笔為你收集整理的通过java查询数据库表结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。