| public Row getRow(String fields, String criteria, Object[] args) throws DBAccessException { RowSet rows = executeQuery(fields, criteria, args); if (rows == null) { return null; } return rows.get(0); } /** * 得到一个多行记录 * @param criteria 查询条件 * @param args 查询条件的参数列表 * @return */ public RowSet getRows(String fields, String criteria, Object[] args) throws DBAccessException { return executeQuery(fields, criteria, args); } /** * 执行SQL查询 * @param fields 要查询的字段,如果传入null则表示查询表中所有字段 * @param criteria用户输入的查询Where条件 * @param args 用到的参数数组 * @return 返回符合结果行集 */ private RowSet executeQuery(String fields, String criteria, Object[] args) throws DBAccessException { Connection conn = null; RowSet rows = new RowSet(); String sql = null; if (fields == null) { fields = "*"; } try { conn = database.getConnection(); //取得数据库连接,在方法内部对不同的连接情况进行了处理 sql = "select " + fields + " from " + name + ( (criteria == null) ? "" : (" where " + criteria)); PreparedStatement pstmt = conn.prepareStatement(sql); if (args != null) { //如果有查询参数则设置参数 for (int i = 0; i < args.length; i++) { pstmt.setObject(i + 1, args[i]); } } ResultSet rs = pstmt.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); int cols = rsmd.getColumnCount(); /**@todo 判断是否为零*/ if (cols == 0) { |