Как получить доступ к значению запроса SQL count () в программе Java - PullRequest
52 голосов
/ 04 мая 2010

Я хочу получить значение, найденное с помощью команды COUNT в SQL. Обычно я ввожу имя столбца, к которому я хочу получить доступ, в метод getInt () getString (), что мне делать в этом случае, когда нет конкретного имени столбца.

Я использовал 'AS' так же, как и для псевдонима таблицы, я не уверен, что это сработает, я думаю, нет.

Statement stmt3 = con.createStatement();
ResultSet rs3 = stmt3.executeQuery("SELECT COUNT(*) FROM "+lastTempTable+") AS count");
    while(rs3.next()){
    count = rs3.getInt("count");
    }

Ответы [ 7 ]

90 голосов
/ 04 мая 2010

Использовать псевдонимы:

SELECT COUNT(*) AS total FROM ..

, а затем

rs3.getInt("total")
43 голосов
/ 04 мая 2010

Ответы Богзо и Брабстер , очевидно, будут работать, но вы также можете просто использовать:

rs3.getInt(1);

чтобы получить значение в первом, а в вашем случае только в столбце.

4 голосов
/ 04 мая 2010

Я ожидаю, что этот запрос будет работать с вашей программой:

"SELECT COUNT(*) AS count FROM "+lastTempTable+")"

(Вам нужно псевдоним столбца, а не таблицы)

2 голосов
/ 12 мая 2013

Я сделал это так (пример):

String query="SELECT count(t1.id) from t1, t2 where t1.id=t2.id and t2.email='"r@r.com"'";
int count=0;
try {
    ResultSet rs = DatabaseService.statementDataBase().executeQuery(query);
    while(rs.next())
        count=rs.getInt(1);
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    //...
}
1 голос
/ 14 сентября 2018
        <%
        try{
            Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bala","bala","bala");
            if(con == null) System.out.print("not connected");
            Statement st = con.createStatement();
            String myStatement = "select count(*) as total from locations";
            ResultSet rs = st.executeQuery(myStatement);
            int num = 0;
            while(rs.next()){
                num = (rs.getInt(1));
            }

        }
        catch(Exception e){
            System.out.println(e);  
        }

        %>
1 голос
/ 20 августа 2013
Statement stmt3 = con.createStatement();

ResultSet rs3 = stmt3.executeQuery("SELECT COUNT(*) AS count FROM "+lastTempTable+" ;");

count = rs3.getInt("count");
0 голосов
/ 25 июля 2018

Это похоже на выше, но вы можете попробовать как

public Integer count(String tableName) throws CrateException {
        String query = String.format("Select count(*) as size from %s", tableName);
        try (Statement s = connection.createStatement()) {
            try (ResultSet resultSet = queryExecutor.executeQuery(s, query)) {
                Preconditions.checkArgument(resultSet.next(), "Result set is empty");
                return resultSet.getInt("size");
            }
        } catch (SQLException e) {
            throw new CrateException(e);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...