| |
在这个演示程序中用到数据库是access的,数据库中的表的名字是studentinfo表,包含字段有 idno 文本型 长为8 name 文本型 长为8 sex 文本型 长为6 age 数值型 长为8 birthdt 文本型 长为8 程序中主要是操作这个表,选择的驱动是odbc。程序如下: 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(); /* 获得resultsetmeatadata对象。所有方法的参数都是列的索引号,即第几列,从1开始 */ system.out.println("下面这些方法是resultsetmetadata中方法"); system.out.println("获得1列所在的catalog名字 : " + rsmd.getcatalogname(1)); system.out.println("获得1列对应数据类型的类 " + rsmd.getcolumnclassname(1)); system.out.println("获得该resultset所有列的数目 " + rsmd.getcolumncount()); system.out.println("1列在数据库中类型的最大字符个数" + rsmd.getcolumndisplaysize(1)); system.out.println(" 1列的默认的列的标题" + rsmd.getcolumnlabel(1)); system.out.println(“1列的模式” + rsmd.getschemaname(1)); system.out.println("1列的类型,返回sqltype中的编号 " + rsmd.getcolumntype(1)); system.out.println("1列在数据库中的类型,返回类型全名" + rsmd.getcolumntypename(1)); system.out.println("1列类型的精确度(类型的长度): " + rsmd.getprecision(1)); system.out.println("1列小数点后的位数 " + rsmd.getscale(1)); system.out.println("1列对应的模式的名称(应该用于oracle) " + rsmd.getschemaname(1)); system.out.println("1列对应的表名 " + rsmd.gettablename(1)); system.out.println(“1列是否自动递增” + rsmd.isautoincrement(1)); system.out.println(“1列在数据库中是否为货币型” + rsmd.iscurrency(1)); system.out.println(“1列是否为空” + rsmd.isnullable(1)); system.out.println(“1列是否为只读” + rsmd.isreadonly(1)); system.out.println(“1列能否出现在where中” + rsmd.issearchable(1)); } catch (sqlexception ex) { ex.printstacktrace(); } } public static void main(string args[]) { dbaccess dbaccess = new dbaccess(); dbaccess.getresultsetmetadata(); } } 通过上面例子中的方法能够获得,resultset中的表的信息,有两个方法的用法我也不甚清楚,所以没写,弄明白了再作补充。
|
|