內(nèi)容概要:
ResultSetMetaData中的方法的介紹。
ResultSetMetaData:
這個(gè)類完成了查詢結(jié)果信息和結(jié)果中的列的各種信息。它包含的方法以及各個(gè)方法的作用,在下面這個(gè)演示程序中一一介紹。在這個(gè)演示程序中用到數(shù)據(jù)庫(kù)是Access的,數(shù)據(jù)庫(kù)中的表的名字是STUDENTINFO表,包含字段有
IDNO 文本型 長(zhǎng)為8
NAME 文本型 長(zhǎng)為8
SEX 文本型 長(zhǎng)為6
AGE 數(shù)值型 長(zhǎng)為8
BIRTHDT 文本型 長(zhǎng)為8
程序中主要是操作這個(gè)表,選擇的驅(qū)動(dòng)是ODBC。程序如下:
- importjava.sql.*;
- publicclassDBAccess{
- publicstaticjava.sql.Connectionconn=null;
- privateStringsqlStr="";
- publicDBAccess()
- {
- //newsun.jdbc.odbc.JdbcOdbcDriver();
- try{
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- conn=DriverManager.getConnection("jdbc:odbc:TestDB","admin","");
- }
- catch(ClassNotFoundExceptionex){
- System.out.println(ex.toString());
- }
- catch(SQLExceptionsqlEx){
- System.out.println(sqlEx.toString());
- }
- }
- publicResultSetSearch(){
- ResultSetrset=null;
- sqlStr="SELECT*FROMSTUDENTINFO";
- Statementsmt=null;
- try{
- smt=conn.createStatement();
- rset=smt.executeQuery(sqlStr);
- }
- catch(SQLExceptionex){
- System.out.println("Exception:"+ex.toString());
- }
- returnrset;
- }
- publicvoidgetResultSetMetaData()
- {
- ResultSetrs=null;
- try{
- String[]tp={"TABLE"};
- rs=this.Search();
- ResultSetMetaDatarsmd=rs.getMetaData();
- System.out.println("下面這些方法是ResultSetMetaData中方法");
- System.out.println("獲得1列所在的Catalog名字:"+rsmd.getCatalogName(1));
- System.out.println("獲得1列對(duì)應(yīng)數(shù)據(jù)類型的類"+rsmd.getColumnClassName(1));
- System.out.println("獲得該ResultSet所有列的數(shù)目"+rsmd.getColumnCount());
- System.out.println("1列在數(shù)據(jù)庫(kù)中類型的最大字符個(gè)數(shù)"+rsmd.getColumnDisplaySize(1));
- System.out.println("1列的默認(rèn)的列的標(biāo)題"+rsmd.getColumnLabel(1));
- System.out.println(“1列的模式”+rsmd.GetSchemaName(1));
- System.out.println("1列的類型,返回SqlType中的編號(hào)"+rsmd.getColumnType(1));
- System.out.println("1列在數(shù)據(jù)庫(kù)中的類型,返回類型全名"+rsmd.getColumnTypeName(1));
- System.out.println("1列類型的精確度(類型的長(zhǎng)度):"+rsmd.getPrecision(1));
- System.out.println("1列小數(shù)點(diǎn)后的位數(shù)"+rsmd.getScale(1));
- System.out.println("1列對(duì)應(yīng)的模式的名稱(應(yīng)該用于Oracle)"+rsmd.getSchemaName(1));
- System.out.println("1列對(duì)應(yīng)的表名"+rsmd.getTableName(1));
- System.out.println(“1列是否自動(dòng)遞增”+rsmd.isAutoIncrement(1));
- System.out.println(“1列在數(shù)據(jù)庫(kù)中是否為貨幣型”+rsmd.isCurrency(1));
- System.out.println(“1列是否為空”+rsmd.isNullable(1));
- System.out.println(“1列是否為只讀”+rsmd.isReadOnly(1));
- System.out.println(“1列能否出現(xiàn)在where中”+rsmd.isSearchable(1));
- }
- catch(SQLExceptionex){
- ex.printStackTrace();
- }
- }
- publicstaticvoidmain(Stringargs[])
- {
- DBAccessdbAccess=newDBAccess();
- dbAccess.getResultSetMetaData();
- }
- }
import java.sql.*;public class DBAccess { public static java.sql.Connection conn = null; private String sqlStr = "";public DBAccess() { //new sun.jdbc.odbc.JdbcOdbcDriver(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:TestDB","admin",""); } catch (ClassNotFoundException ex) { System.out.println(ex.toString()); } catch(SQLException sqlEx){ System.out.println(sqlEx.toString()); } }public ResultSet Search() { ResultSet rset = null; sqlStr = "SELECT * FROM STUDENTINFO"; Statement smt = null; try { smt = conn.createStatement(); rset = smt.executeQuery(sqlStr); } catch (SQLException ex) { System.out.println("Exception:"+ex.toString()); } return rset; } public void getResultSetMetaData(){ ResultSet rs = null; try { String[] tp = {"TABLE"}; rs = this.Search(); ResultSetMetaData rsmd = rs.getMetaData(); System.out.println("下面這些方法是ResultSetMetaData中方法"); System.out.println("獲得1列所在的Catalog名字 : " + rsmd.getCatalogName(1)); System.out.println("獲得1列對(duì)應(yīng)數(shù)據(jù)類型的類 " + rsmd.getColumnClassName(1)); System.out.println("獲得該ResultSet所有列的數(shù)目 " + rsmd.getColumnCount()); System.out.println("1列在數(shù)據(jù)庫(kù)中類型的最大字符個(gè)數(shù)" + rsmd.getColumnDisplaySize(1)); System.out.println(" 1列的默認(rèn)的列的標(biāo)題" + rsmd.getColumnLabel(1)); System.out.println(“1列的模式” + rsmd.GetSchemaName(1)); System.out.println("1列的類型,返回SqlType中的編號(hào) " + rsmd.getColumnType(1)); System.out.println("1列在數(shù)據(jù)庫(kù)中的類型,返回類型全名" + rsmd.getColumnTypeName(1)); System.out.println("1列類型的精確度(類型的長(zhǎng)度): " + rsmd.getPrecision(1)); System.out.println("1列小數(shù)點(diǎn)后的位數(shù) " + rsmd.getScale(1)); System.out.println("1列對(duì)應(yīng)的模式的名稱(應(yīng)該用于Oracle) " + rsmd.getSchemaName(1)); System.out.println("1列對(duì)應(yīng)的表名 " + rsmd.getTableName(1)); System.out.println(“1列是否自動(dòng)遞增” + rsmd.isAutoIncrement(1)); System.out.println(“1列在數(shù)據(jù)庫(kù)中是否為貨幣型” + rsmd.isCurrency(1)); System.out.println(“1列是否為空” + rsmd.isNullable(1)); System.out.println(“1列是否為只讀” + rsmd.isReadOnly(1)); System.out.println(“1列能否出現(xiàn)在where中” + rsmd.isSearchable(1)); } catch (SQLException ex) { ex.printStackTrace();}}public static void main(String args[]) { DBAccess dbAccess = new DBAccess(); dbAccess.getResultSetMetaData(); }}
通過上面例子中的方法能夠獲得,ResultSet中的表的信息。
愛華網(wǎng)


