【问题标题】:Java SQL get all rows from columnJava SQL 从列中获取所有行
【发布时间】:2015-11-25 19:59:11
【问题描述】:

我想从我的数据库中获取行数 如何创建一个以 int 形式返回行数的方法? 这是我得到的,但它只返回数字 1

public int getAllId() {

    SQLiteDatabase db = this.getWritableDatabase();

    int x=0;
    String where = null;
    Cursor c = db.rawQuery("SELECT COUNT (*) FROM " + TABLE_PRODUCTS, null);


     while (c.isAfterLast() == false) {



        c.moveToNext();

    }

    db.close();
    return c.getCount();

【问题讨论】:

  • 通过在您的方法中执行SELECT COUNT(*) FROM MYTABLE。表现出一些主动性,有很多关于这些事情的信息。
  • 是的,我查看了这里的许多示例和问题,但我无法将其适应我的代码,因为我还是 java 新手
  • 问题是广泛的。我们看不到您的代码,也看不到您到目前为止所做的事情。请考虑更新您的问题。
  • 已更新,如果不赞成请评论...
  • preparedStatement.executeUpdate() 返回行数。为什么不在ResultSet 中得到结果并迭代while 直到resultSet.next() 如果resultSet != null 这样做有意义

标签: java sql


【解决方案1】:

如果您使用没有任何库的简单 JDBC,您应该能够从 ResultSet 中获取行数 不久前我使用两种方法做到了这一点:

1.

    rs.last();
    rs.getRow();

2.

      int rowcount = 0;
      while (rs.next()) { 
      // more processing here 
       rowCount++;
     }

但请注意,我只在 oracle 和 mysql dbs 上使用过它。此外,如果连接是 ResultSet.TYPE_FORWARD_ONLY,您将无法返回。

您可以从http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html阅读更多关于结果集的信息

希望这会有所帮助:)

【讨论】:

    【解决方案2】:

    感谢

    SQLite Query in Android to count rows

    这是我想出的代码:

    public int getRowCount() throws Exception {
        SQLiteDatabase db = this.getWritableDatabase();
    
    
        Cursor mCount= db.rawQuery("SELECT COUNT (*) FROM " + TABLE_PRODUCTS,
        null); 
    
        mCount.moveToFirst();
        int rows= mCount.getInt(0);
        mCount.close();
    
    return rows;
    
     }
    

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2022-09-22
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2019-02-10
      相关资源
      最近更新 更多