我想在数据库的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));
答案 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
区块中的Statement
,Connection
和finally
,或使用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';