Comment accéder à la valeur D'une requête SQL count () dans un programme Java

je veux obtenir la valeur que je trouve en utilisant la commande COUNT de SQL. Normalement j'entre le nom de la colonne à laquelle je veux accéder dans la méthode getInt() getString (), ce que je fais dans ce cas quand il n'y a pas de nom de colonne spécifique.

j'ai utilisé ' AS ' de la même manière qu'on utilise pour alias une table, Je ne suis pas sûr que ça va marcher, je pense que non.

Statement stmt3 = con.createStatement();
ResultSet rs3 = stmt3.executeQuery("SELECT COUNT(*) FROM "+lastTempTable+") AS count");
    while(rs3.next()){
    count = rs3.getInt("count");
    }
45
demandé sur Bozho 2010-05-04 11:53:33

7 réponses

Utiliser des alias:

SELECT COUNT(*) AS total FROM ..

et

rs3.getInt("total")
77
répondu Bozho 2010-05-04 08:23:06

Les réponses fournies par Bohzo et Brabster fonctionneront bien sûr, mais vous pourriez tout aussi bien utiliser:

rs3.getInt(1);

pour obtenir la valeur de la première, et dans votre cas, seule la colonne.

40
répondu Eric Eijkelenboom 2017-05-23 12:10:11

je m'attends à cette requête de travailler avec votre programme:

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

(Vous avez besoin de faire un alias de la colonne, pas sur la table)

4
répondu brabster 2010-05-04 07:55:27

j'ai fait de cette manière (exemple):

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 {
    //...
}
2
répondu andrew 2013-05-12 09:11:53
Statement stmt3 = con.createStatement();

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

count = rs3.getInt("count");
1
répondu geek 2013-08-20 10:53:31

Il est similaire à ci-dessus mais vous pouvez essayer comme

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);
        }
    }
}
0
répondu Dhruv Pal 2018-07-25 19:09:05
        <%
        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);  
        }

        %>
0
répondu BalajiShanmugam 2018-09-14 07:01:46