1 package jimm.datavision.source.sql; 2 import jimm.datavision.ErrorHandler; 3 import jimm.datavision.source.DataCursor; 4 import java.util.List ; 5 import java.util.ArrayList ; 6 import java.sql.*; 7 8 13 public class ResultSetRow extends DataCursor { 14 15 protected PreparedStatement stmt; 16 protected ResultSet rset; 17 protected int numSelectables; 18 protected boolean noMoreData; 19 20 ResultSetRow(Connection conn, SQLQuery query) throws SQLException { 21 27 String preparedStmtString = query.toPreparedStatementString(); 28 if (preparedStmtString != null && preparedStmtString.length() > 0) { 29 stmt = conn.prepareStatement(preparedStmtString); 30 query.setParameters(stmt); 31 rset = stmt.executeQuery(); 32 numSelectables = query.getNumSelectables(); 33 noMoreData = false; 34 } 35 else { 36 numSelectables = 0; 37 noMoreData = true; 38 } 39 } 40 41 public List readRowData() { 42 if (noMoreData) 46 return null; 47 48 try { 49 if (!rset.next()) { 50 noMoreData = true; 51 return null; 52 } 53 } 54 catch (SQLException sqle) { 55 ErrorHandler.error(sqle); 56 return null; 57 } 58 59 ArrayList list = new ArrayList (); 60 try { 61 for (int i = 1; i <= numSelectables; ++i) 62 list.add(rset.getObject(i)); 63 } 64 catch (SQLException sqle) { 65 ErrorHandler.error(sqle); 66 } 67 return list; 68 } 69 70 public void close() { 71 try { 72 if (rset != null) rset.close(); 73 if (stmt != null) stmt.close(); 74 } 75 catch (SQLException sqle) { 76 ErrorHandler.error(sqle); 77 } 78 finally { 79 rset = null; 80 stmt = null; 81 } 82 } 83 84 } 85 | Popular Tags |