web-dev-qa-db-ja.com

JavaプログラムでSQLカウント()クエリの値にアクセスする方法

SQLのCOUNTコマンドを使用して、見つけた値に到達したい。通常、アクセスする列名をgetInt()getString()メソッドに入力します。この場合、特定の列名がない場合はどうすればよいですか。

テーブルのエイリアスに使用されるのと同じ方法で「AS」を使用しましたが、これが機能するかどうかはわかりませんが、そうではないと思います。

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

エイリアスを使用する:

SELECT COUNT(*) AS total FROM ..

その後

rs3.getInt("total")
92
Bozho

Bohzo および Brabster によって提供される回答は明らかに機能しますが、次のように使用することもできます。

rs3.getInt(1);

最初の列で値を取得します。

43

私はこのクエリがあなたのプログラムで動作することを期待しています:

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

(テーブルではなく列にエイリアスを作成する必要があります)

4
brabster

私はそれをこの方法で行いました(例):

String query="SELECT count(t1.id) from t1, t2 where t1.id=t2.id and t2.email='"[email protected]"'";
int count=0;
try {
    ResultSet rs = DatabaseService.statementDataBase().executeQuery(query);
    while(rs.next())
        count=rs.getInt(1);
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    //...
}
2
andrew
        <%
        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
BalajiShanmugam
Statement stmt3 = con.createStatement();

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

count = rs3.getInt("count");
1
geek

上記と似ていますが、次のように試すことができます

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
Dhruv Pal