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");
}
7 réponses
Utiliser des alias:
SELECT COUNT(*) AS total FROM ..
et
rs3.getInt("total")
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.
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)
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 {
//...
}
Statement stmt3 = con.createStatement();
ResultSet rs3 = stmt3.executeQuery("SELECT COUNT(*) AS count FROM "+lastTempTable+" ;");
count = rs3.getInt("count");
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);
}
}
}
<%
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);
}
%>