java.sql.ResultSet#getRow ( )源码实例Demo

下面列出了java.sql.ResultSet#getRow ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: ade   文件: ExtDataStoreUtils.java
/**
 * Since the ResultSet class mysteriously lacks a "size()" method, and
 * since simply iterating thru what might be a large ResultSet could be
 * a costly exercise, we play the following games.
 * We take care to try and leave R as we found it, cursor-wise.
 *
 * @param R - instance of jdbc ResultSet
 * @return - boolean true if R has 1 or more rows, false if not.
 */
public static boolean nonemptyQueryResult(ResultSet R) {

    logger.trace("nonemptyQueryResult(R)");
    boolean nonEmpty = false;
    if (R == null) {
        return false;
    }

    try {
        if (R.getRow() != 0) {
            nonEmpty = true;
        } else {
            logger.trace("nonemptyQueryResult(R) - check R.first()...");
            nonEmpty = R.first();
            R.beforeFirst();
        }
    } catch (Throwable t) {
        surfaceThrowable("nonemptyQueryResult()", t);
    }

    return nonEmpty;

}
 
源代码2 项目: DataSphereStudio   文件: DataCheckerDao.java
private long getTotalCount(Map<String, String>  proObjectMap, Connection conn, Logger log) {
	String dataObject = proObjectMap.get(DataChecker.DATA_OBJECT);
	if(dataObject != null) {
		dataObject = dataObject.replace(" ", "").trim();
	}else{
		log.error("DataObject is null");
		return 0;
	}
	log.info("-------------------------------------- search hive/spark/mr data ");
	log.info("-------------------------------------- : " + dataObject);
	try (PreparedStatement pstmt = getStatement(conn, dataObject)) {
		ResultSet rs = pstmt.executeQuery();
		return rs.last() ? rs.getRow() : 0;
	} catch (SQLException e) {
		log.error("fetch data from Hive MetaStore error", e);
		return 0;
	}
}
 
源代码3 项目: aion-germany   文件: MySQL5MailDAO.java
@Override
public int[] getUsedIDs() {
	PreparedStatement statement = DB.prepareStatement("SELECT mail_unique_id FROM mail", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
	try {
		ResultSet rs = statement.executeQuery();
		rs.last();
		int count = rs.getRow();
		rs.beforeFirst();
		int[] ids = new int[count];
		for (int i = 0; i < count; i++) {
			rs.next();
			ids[i] = rs.getInt("mail_unique_id");
		}
		return ids;
	}
	catch (SQLException e) {
		log.error("Can't get list of id's from mail table", e);
	}
	finally {
		DB.close(statement);
	}
	return new int[0];
}
 
@Override
public int[] getUsedIDs() {
	PreparedStatement statement = DB.prepareStatement("SELECT item_unique_id FROM player_registered_items WHERE item_unique_id <> 0", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

	try {
		ResultSet rs = statement.executeQuery();
		rs.last();
		int count = rs.getRow();
		rs.beforeFirst();
		int[] ids = new int[count];
		for (int i = 0; i < count; i++) {
			rs.next();
			ids[i] = rs.getInt(1);
		}
		return ids;
	}
	catch (SQLException e) {
		log.error("Can't get list of id's from player_registered_items table", e);
	}
	finally {
		DB.close(statement);
	}

	return new int[0];
}
 
源代码5 项目: herd   文件: JdbcDaoImpl.java
/**
 * Gets the rows from the given {@link ResultSet}. Optionally, limits the number of rows returned using maxResult.
 * 
 * @param resultSet {@link ResultSet}
 * @param maxResult The maximum number of rows returned
 * @return {@link List} of {@link JdbcStatementResultSetRow}
 * @throws SQLException when there is an error reading from the {@link ResultSet}
 */
private List<JdbcStatementResultSetRow> getRows(ResultSet resultSet, Integer maxResult) throws SQLException
{
    List<JdbcStatementResultSetRow> rows = new ArrayList<>();
    int columnCount = resultSet.getMetaData().getColumnCount();
    while (resultSet.next())
    {
        JdbcStatementResultSetRow row = new JdbcStatementResultSetRow();
        for (int i = 1; i <= columnCount; i++)
        {
            String column = resultSet.getString(i);
            row.getColumns().add(column);
        }
        rows.add(row);

        // Exit loop if the maxResult is reached.
        if (maxResult != null && resultSet.getRow() == maxResult)
        {
            break;
        }
    }
    return rows;
}
 
源代码6 项目: aion-germany   文件: MySQL5PlayerDAO.java
/**
 * {@inheritDoc}
 */
@Override
public int[] getUsedIDs() {
	PreparedStatement statement = DB.prepareStatement("SELECT id FROM players", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

	try {
		ResultSet rs = statement.executeQuery();
		rs.last();
		int count = rs.getRow();
		rs.beforeFirst();
		int[] ids = new int[count];
		for (int i = 0; i < count; i++) {
			rs.next();
			ids[i] = rs.getInt("id");
		}
		return ids;
	}
	catch (SQLException e) {
		log.error("Can't get list of id's from players table", e);
	}
	finally {
		DB.close(statement);
	}

	return new int[0];
}
 
源代码7 项目: aion-germany   文件: MySQL5InventoryDAO.java
@Override
public int[] getUsedIDs() {
	PreparedStatement statement = DB.prepareStatement("SELECT item_unique_id FROM inventory", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

	try {
		ResultSet rs = statement.executeQuery();
		rs.last();
		int count = rs.getRow();
		rs.beforeFirst();
		int[] ids = new int[count];
		for (int i = 0; i < count; i++) {
			rs.next();
			ids[i] = rs.getInt("item_unique_id");
		}
		return ids;
	}
	catch (SQLException e) {
		log.error("Can't get list of id's from inventory table", e);
	}
	finally {
		DB.close(statement);
	}

	return new int[0];
}
 
源代码8 项目: aion-germany   文件: MySQL5BrokerDAO.java
@Override
public int[] getUsedIDs() {
	PreparedStatement statement = DB.prepareStatement("SELECT id FROM players", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

	try {
		ResultSet rs = statement.executeQuery();
		rs.last();
		int count = rs.getRow();
		rs.beforeFirst();
		int[] ids = new int[count];
		for (int i = 0; i < count; i++) {
			rs.next();
			ids[i] = rs.getInt("id");
		}
		return ids;
	}
	catch (SQLException e) {
		log.error("Can't get list of id's from players table", e);
	}
	finally {
		DB.close(statement);
	}

	return new int[0];
}
 
源代码9 项目: Leo   文件: MysqlUtil.java
/**
	 * 说明:判断查询结果集内的记录个数,如果小于1条则返回true
	 * 
	 * @param res
	 *            查询结果集
	 * @return boolean 结果集异常或等于0条返回true,否则返回false
	 */
	private static boolean ResultIsNull(ResultSet res) {
		if (null == res) {
//			log.info("数据库连接异常");
			return true;
		}
		
		try {
			res.last();
			if (res.getRow() == 0) {
				log.info("查询结果集为0条");
				return true;
			} else {
				res.beforeFirst();
				return false;
			}
		} catch (SQLException e) {

			log.error("计算查询结果集个数失败!");
			log.error(e.getMessage());
			return true;
		}

	}
 
源代码10 项目: CQL   文件: DatabaseUtil.java
/**
 * Returns an array of the primary keys found in a given table. An array of size
 * 0 is returned in the event of a db access error.
 * 
 * @param table The entity node representing the table from which we wish to get
 *              the primary IDs
 * @return The primary IDs of all records found in the given table
 */
public static int[] getPKs(final EntityNode table) {
	final JDBCDriver dbd;
	final ColumnNaming cn;
	final ResultSet result;

	try {
		dbd = table.getMModel().getDatabase().getJDBCDriver();
		cn = new ColumnNaming(dbd);
		result = dbd.executeQuery("SELECT * FROM " + table.getName());

		result.last(); // move to last row to get row count

		final int[] pKs = new int[result.getRow()];

		// move back to first row
		result.beforeFirst();
		result.next();

		final String pIdName = cn.tablePK(table);

		for (int i = 0; i < pKs.length; i++) {
			pKs[i] = result.getInt(pIdName);

			result.next();
		}

		return pKs;
	} catch (SQLException e) {
		System.err.println("Error in DatabaseUtil: " + e.getMessage());

		return new int[0];
	}
}
 
/**
 * Executes the given query.
 *
 * @param query The query to execute.
 * @return Returns the number of rows returned or the number of rows affected by the query.
 * @throws SQLException
 */
private int executeQuery(String query) throws SQLException {
  Connection connection = connectionPool.getConnection();
  Statement statement;
  int resultCount = 0;
  try {
    statement = connection.createStatement();
    logger.log(Level.INFO, "Running query: " + query);
    boolean hasResultSet = statement.execute(query);
    if (hasResultSet) {
      ResultSet resultSet = statement.getResultSet();
      if (resultSet != null && resultSet.last()) {
        resultCount = resultSet.getRow();
      }
    } else {
      resultCount = statement.getUpdateCount();
    }
  } catch (SQLException e) {
    // Something went wrong. Close the connection.
    connection.close();
    throw e;
  }
  if (statement != null) {
    statement.close();
  }
  connection.close();
  return resultCount;
}
 
@Override
public int getRow() throws SQLException {
    int currentRow = this.getCurrentResultSet() == null ? 0 : this.getCurrentResultSet().getRow();
    int totalRowsOfPreviousResultSets = 0;
    if (currentIndex - 2 >= 0) {
        int index = currentIndex - 2;
        for (; index >= 0; index--) {
            ResultSet set = results.get(index).getResultSet();
            set.last();
            totalRowsOfPreviousResultSets += set.getRow();
        }
    }
    return currentRow + totalRowsOfPreviousResultSets;
}
 
源代码13 项目: r-course   文件: BaseTestCase.java
protected void assertResultSetLength(ResultSet rset, int len) throws Exception {
    int oldRowPos = rset.getRow();
    rset.last();
    assertEquals("Result set length", len, rset.getRow());
    if (oldRowPos > 0) {
        rset.absolute(oldRowPos);
    } else {
        rset.beforeFirst();
    }
}
 
源代码14 项目: Knowage-Server   文件: JDBCStandardDataReader.java
private int getResultNumber(ResultSet rs, long maxRecToParse, int recCount) throws SQLException {
	logger.debug("IN");

	int toReturn;

	logger.debug("resultset type [" + rs.getType() + "] (" + (rs.getType() == ResultSet.TYPE_FORWARD_ONLY) + ")");
	if (rs.getType() == ResultSet.TYPE_FORWARD_ONLY) {

		int recordsCount = 0;
		if (recCount < maxRecToParse) {
			// records read where less then max records to read, therefore the resultset has been completely read
			recordsCount = getOffset() + recCount;
		} else {
			recordsCount = rs.getRow();
			while (rs.next()) {
				recordsCount++;
				// do nothing, just scroll result set
			}
		}
		toReturn = recordsCount;
	} else {
		rs.last();
		toReturn = rs.getRow();
	}

	logger.debug("Reading total record numeber is equal to [" + toReturn + "]");
	logger.debug("OUT " + toReturn);
	return toReturn;
}
 
源代码15 项目: NutzCodematic   文件: SysTableCtl.java
public static Vector getListPage(Connection con,String tablename,int curpage,int pagesize,int  colcount)
{
    Vector pandy=new Vector();
    DBOject obj=new DBOject();
    String sql="SELECT * FROM "+tablename;

    ResultSet rs=obj.getrollresultset(con,sql);
    try
    {
        rs.last();
        int rowcount=rs.getRow();
        rs.beforeFirst();
        rs=obj.listpage(rs,curpage,pagesize);
        Object noteinfo[][] = new Object[pagesize][colcount];
        int counter=0;
        while(rs.next())
        {
             if(counter>=pagesize)
            {
                break;
            }
            for (int i = 0; i < colcount; i++)
            {
                noteinfo[counter][i] = rs.getObject(i + 1);
            }
            counter++;
        }
        Object noteinfo2[][]= new Object[counter][colcount];
        for(int i=0;i<counter;i++)
        for(int j=0;j<colcount;j++)
        {
            noteinfo2[i][j]=noteinfo[i][j];
        }
        pandy.add(String.valueOf(rowcount));
        pandy.add(noteinfo2);
        return pandy;
    } catch (SQLException e)
    {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    } finally
    {
        obj.freecon(con);
    }
    return pandy;
}
 
源代码16 项目: Komondor   文件: MetaDataRegressionTest.java
private void compareResultSets(ResultSet expected, ResultSet actual) throws Exception {
    if (expected == null) {
        if (actual != null) {
            fail("Expected null result set, actual was not null.");
        } else {
            return;
        }
    } else if (actual == null) {
        fail("Expected non-null actual result set.");
    }

    expected.last();

    int expectedRows = expected.getRow();

    actual.last();

    int actualRows = actual.getRow();

    assertEquals(expectedRows, actualRows);

    ResultSetMetaData metadataExpected = expected.getMetaData();
    ResultSetMetaData metadataActual = actual.getMetaData();

    assertEquals(metadataExpected.getColumnCount(), metadataActual.getColumnCount());

    for (int i = 0; i < metadataExpected.getColumnCount(); i++) {
        assertEquals(metadataExpected.getColumnName(i + 1), metadataActual.getColumnName(i + 1));
        assertEquals(metadataExpected.getColumnType(i + 1), metadataActual.getColumnType(i + 1));
        assertEquals(metadataExpected.getColumnClassName(i + 1), metadataActual.getColumnClassName(i + 1));
    }

    expected.beforeFirst();
    actual.beforeFirst();

    StringBuilder messageBuf = null;

    while (expected.next() && actual.next()) {

        if (messageBuf != null) {
            messageBuf.append("\n");
        }

        for (int i = 0; i < metadataExpected.getColumnCount(); i++) {
            if (expected.getObject(i + 1) == null && actual.getObject(i + 1) == null) {
                continue;
            }

            if ((expected.getObject(i + 1) == null && actual.getObject(i + 1) != null)
                    || (expected.getObject(i + 1) != null && actual.getObject(i + 1) == null)
                    || (!expected.getObject(i + 1).equals(actual.getObject(i + 1)))) {
                if ("COLUMN_DEF".equals(metadataExpected.getColumnName(i + 1))
                        && (expected.getObject(i + 1) == null && actual.getString(i + 1).length() == 0)
                        || (expected.getString(i + 1).length() == 0 && actual.getObject(i + 1) == null)) {
                    continue; // known bug with SHOW FULL COLUMNS, and we
                             // can't distinguish between null and ''
                             // for a default
                }

                if ("CHAR_OCTET_LENGTH".equals(metadataExpected.getColumnName(i + 1))) {
                    if (((com.mysql.jdbc.ConnectionImpl) this.conn).getMaxBytesPerChar(
                            CharsetMapping.getJavaEncodingForMysqlCharset(((com.mysql.jdbc.Connection) this.conn).getServerCharset())) > 1) {
                        continue; // SHOW CREATE and CHAR_OCT *will* differ
                    }
                }

                if (messageBuf == null) {
                    messageBuf = new StringBuilder();
                } else {
                    messageBuf.append("\n");
                }

                messageBuf.append("On row " + expected.getRow() + " ,for column named " + metadataExpected.getColumnName(i + 1) + ", expected '"
                        + expected.getObject(i + 1) + "', found '" + actual.getObject(i + 1) + "'");

            }
        }
    }

    if (messageBuf != null) {
        fail(messageBuf.toString());
    }
}
 
源代码17 项目: flex-blazeds   文件: AbstractDatabase.java
public static int countRecords(ResultSet resultSet)
{
    int rowCount = 0;

    //Determine rs size
    if (resultSet != null)
    {
        try
        {
            int currentIndex = resultSet.getRow();

            //Go to the end and get that row number
            if (resultSet.last())
            {
                rowCount = resultSet.getRow();
            }

            //Put the cursor back
            if (currentIndex > 0)
            {
                resultSet.absolute(currentIndex);
            }
            else
            {
                resultSet.beforeFirst();
            }
        }
        catch (SQLException ex)
        {
            //TODO: Decide whether if absolute() not be supported, try first() as a last resort??
            try
            {
                resultSet.first();
            }
            catch (SQLException se)
            {
                //we won't try anymore.
            }
        }
    }

    return rowCount;
}
 
@Test(expected = SQLFeatureNotSupportedException.class)
public void assertGetRow() throws SQLException {
    for (ResultSet each : resultSets) {
        each.getRow();
    }
}
 
源代码19 项目: evosql   文件: TestCollation.java
/**
 * checks sorting a table with according to a given collation
 */
protected String checkSorting(String collationName) {

    String stmt1 = "DROP TABLE WORDLIST IF EXISTS;";
    String stmt2 =
        "CREATE TEXT TABLE WORDLIST ( ID INTEGER, WORD VARCHAR(50) );";
    String stmt3 = "SET TABLE WORDLIST SOURCE \"" + collationName
                   + ".csv;encoding=UTF-8\"";
    String selectStmt    = "SELECT ID, WORD FROM WORDLIST ORDER BY WORD";
    String returnMessage = "";

    try {

        // set database collation
        statement.execute(getSetCollationStmt(collationName));
        statement.execute(stmt1);
        statement.execute(stmt2);
        statement.execute(stmt3);

        ResultSet results = statement.executeQuery(selectStmt);

        while (results.next()) {
            int expectedPosition = results.getInt(1);
            int foundPosition    = results.getRow();

            if (expectedPosition != foundPosition) {
                String word = results.getString(2);

                return "testing collation '" + collationName
                       + "' failed\n" + "  word              : " + word
                       + "\n" + "  expected position : "
                       + expectedPosition + "\n"
                       + "  found position    : " + foundPosition + "\n";
            }
        }
    } catch (SQLException e) {
        return "testing collation '" + collationName
               + "' failed\n  exception message: " + e.getMessage() + "\n";
    }

    return "";
}
 
源代码20 项目: restful-booker-platform   文件: MessageDB.java
public int getUnreadCount() throws SQLException {
    PreparedStatement ps = connection.prepareStatement(SELECT_UNREAD_MESSAGE);

    ResultSet result = ps.executeQuery();

    return result.last() ? result.getRow() : 0;
}