0

返されたカウント値を変数に格納して、それを使用して属性を設定するにはどうすればよいですか? これまでの私の方法は次のとおりです。

public List<Sighting> total() {

     return jdbc.query("select pest_name, count(pest_name) from sighting group by pest_name", new RowMapper<Sighting>() {
         public Sighting mapRow(ResultSet rs, int rowNum) throws SQLException {
                Sighting sighting = new Sighting();
                sighting.setCount(????); // I need to pass a variable to setCount()
                sighting.setPest_name(rs.getString("pest_name"));
                return sighting;
            }      
       });
}

クエリのそのカウント値..

4

3 に答える 3

3

カウントの名前を指定することもできます。

return jdbc.query("select pest_name, count(pest_name) as pest_count from sighting group by pest_name", new RowMapper<Sighting>() {
         public Sighting mapRow(ResultSet rs, int rowNum) throws SQLException {
                Sighting sighting = new Sighting();
                sighting.setCount(rs.getInt("pest_count"));
                sighting.setPest_name(rs.getString("pest_name"));
                return sighting;
            }      
       });

...または単に列番号で取得します:

return jdbc.query("select pest_name, count(pest_name) from sighting group by pest_name", new RowMapper<Sighting>() {
         public Sighting mapRow(ResultSet rs, int rowNum) throws SQLException {
                Sighting sighting = new Sighting();
                sighting.setCount(rs.getInt(2));
                sighting.setPest_name(rs.getString("pest_name"));
                return sighting;
            }      
       });

getLongの代わりに使用する必要がある場合がありますgetInt

于 2013-10-24T13:34:27.567 に答える
2

で試してください:

Select pest_name, count(pest_name)  as totalCount

そして結果セットで試してみてください

long count = rs.getLong("totalCount")
于 2013-10-24T13:33:50.597 に答える
0

カウントに名前を付けます。変化する

"select pest_name, count(pest_name) from sighting group by pest_name"

"select pest_name, count(pest_name) as pest_count from sighting group by pest_name"
于 2013-10-24T13:33:38.937 に答える