我知道我可以用
计算SQL中的条目SELECT COUNT (*) FROM table
但我不知道在Java中如何表现。
这是执行SQL命令的代码。
Statement stmt = conn.createStatement();
stmt.executeQuery("SELECT COUNT (*) FROM table")
结果:
rs2: org.h2.result.LocalResult@41cf3f60 columns: 1 rows: 1 pos: -1
但它应该返回> 20
我的代码:
Connection conn = null;
Class.forName("org.h2.Driver");
conn = DriverManager.getConnection(
"jdbc:h2:" + Environment.getExternalStorageDirectory()
+ "/sorter/database", "", "");
Statement stmt = conn.createStatement();
Toast.makeText(context,
String.valueOf(stmt.executeQuery(sql)),
Toast.LENGTH_LONG).show();
conn.close();
if (conn != null)
conn.close();
答案 0 :(得分:5)
您所看到的是toString()
ResultSet
方法,您从未实际从结果中检索值。
executeQuery
会返回您用来获取实际数据的ResultSet
。 不直接查询的结果(想想在返回多行和多列时这应该如何工作)
你需要做这样的事情:
ResultSet rs = stmt.executeQuery(sql);
int count = -1;
if (rs.next())
{
count = rs.getInt(1);
}
这在JDBC教程中很好地解释了:
http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/resultset.html#998035
答案 1 :(得分:1)
另一种可能性是
ResultSet rs=conn.prepareStatement("SELECT COUNT(*) FROM table").executeQuery();
if(rs.next()) sysout(rs.getInt(1));