![]() ![]() |
|
使用JDBC创建数据库对象(5) | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/8 11:04:38 文章录入:杜斌 责任编辑:杜斌 | |
|
|
使用JDBC创建数据库对象(5) · 构建更高级别的JDBC对象 在这一部分中,我们将构建一个新的 resultSet 对象,该对象封装了JDBC ResultSet 对象,并以String数组的形式返回一行数据。我们发现您始终需要从 ResultSetMetaData 对象中获取列的序号和名称,因此,创建一个封装元数据的新对象就非常合理。 另外,我们经常需要按名称或整数索引提取某行的元素,如果不必总是将这些访问语句包括 try 块中,那将大有帮助。最后一点,如果我们需要整行的内容,则更方便的做法是将整行以String数组形式返回。在下面所示的 resultSet 对象中,我们致力于实现这些目标: class resultSet{ // 这个类是 JDBC ResultSet 对象的更高级抽象 ResultSet rs; ResultSetMetaData rsmd; int numCols; public resultSet(ResultSet rset) { rs = rset; try { // 同时获取元数据和列数 rsmd = rs.getMetaData(); numCols = rsmd.getColumnCount(); } catch (Exception e) {System.out.println("resultset error" +e.getMessage());} } //-- public String[] getMetaData() { // 返回包含所有列名或其他元数据的 // 一个数组 String md[] = new String[numCols]; try { for (int i=1; i<= numCols; i++) md[i-1] = rsmd.getColumnName(i); } catch (Exception e) {System.out.println("meta data error"+ e.getMessage());} return md; } //-- public boolean hasMoreElements() { try{ return rs.next(); } catch(Exception e){return false;} } //-- public String[] nextElement() { // 将行的内容复制到字符串数组中 String[] row = new String[numCols]; try { for (int i = 1; i <= numCols; i++) row[i-1] = rs.getString(i); } catch (Exception e) {System.out.println("next element error"+ e.getMessage());} return row; } //-- public String getColumnValue(String columnName) { String res = ""; try { res = rs.getString(columnName); } catch (Exception e) {System.out.println("Column value error:"+ columnName+e.getMessage());} return res; } //-- public String getColumnValue(int i) { String res = ""; try { res = rs.getString(i); } catch (Exception e) {System.out.println("Column value error:"+ columnName+e.getMessage());} return res; } //-- public void finalize() { try{rs.close();} catch (Exception e) {System.out.println(e.getMessage());} } } 通过简单使用 new 操作符就地创建一个 ResultSet 对象,我们很容易将任何 ResultSet 对象封装在此类中: ResultSet results = .. // 按通常的方法获得 ResultsSet // 利用它创建一个更有用的对象 resultSet rs = new resultSet(results); 并很容易在任何 JDBC 程序中使用这个对象。 |
|
![]() ![]() |