如何在sql db中获取结果项?

时间:2016-01-03 12:41:00

标签: java count textfield

我想在数据库的john列中找到name,但我无法找到。{/ p>

我正在尝试的内容如下:

String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
if (rs.equals("john")) {
    while (rs.next()) { 
        icount++;
    }
}
jtext1.setText(String.valueOf(icount));

5 个答案:

答案 0 :(得分:1)

另一种方式......

int count = 0;
String query = "SELECT COUNT(DISTINCT name) AS rCount FROM myTable "
             + "WHERE UPPER(name) LIKE UPPER('JOHN');" 
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) { count = rs.getInt("rCount"); }
System.out.println(count);

答案 1 :(得分:0)

String st="SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(st);
int icount = 0 ;
while (rs.next()) { 
    if (rs.getString("name").equals("john")) {
        icount++;
    }
}
jtext1.setText(String.valueOf(icount));

答案 2 :(得分:0)

使用以下代码:

while(rs.next()){
    String name = rs.getString("name");
    if("john".equals(name))
        icount++;
}
jtext1.setText(String.valueOf(icount));

答案 3 :(得分:0)

您正在尝试检查ResultSet对象是否等于john字符串 - 它总是false。你需要这样的东西:

String query = "SELECT name FROM mytable";
ResultSet rs = stmt.executeQuery(query);
int johnCount = 0;
while (rs.next()) {
    String name = rs.getString("name");
    if ("john".equalsIgnoreCase(name)) {
        johnCount++;
    }
}

注意equalsIgnoreCase方法 - 我认为在您的情况下更合适。不要忘记关闭ResultSet区块中的StatementConnectionfinally,或使用try-with-resources

但是如果你想在你的桌子上计算约翰,那么实际使用SELECT COUNT(*) FROM mytable WHERE name = 'john'会更好。请注意,这是查询中的区分大小写的条件。

答案 4 :(得分:0)

你需要用

遍历每一行
while (rs.next) {....

你需要把价值拿出去比较这样

String name = rs.getString(1);
If (name.equals("john")) {....

另一个选择是更改任务以进行计数,这样更有效。

select count(name) from myTable where name = 'john';