use*_*864 0 java sql database h2
我知道我可以用SQL计算SQL中的条目
SELECT COUNT (*) FROM table
Run Code Online (Sandbox Code Playgroud)
但我不知道在Java中怎么做.
这是我执行SQL命令的代码.
Statement stmt = conn.createStatement();
stmt.executeQuery("SELECT COUNT (*) FROM table")
Run Code Online (Sandbox Code Playgroud)
结果:
rs2: org.h2.result.LocalResult@41cf3f60 columns: 1 rows: 1 pos: -1
Run Code Online (Sandbox Code Playgroud)
但它应该返回> 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();
Run Code Online (Sandbox Code Playgroud)
你看到的是toString()方法ResultSet,你从来没有真正从结果的值.
executeQuery返回ResultSet用于获取实际数据的数据.它不是直接查询的结果(想想当返回多行和多列时这应该如何工作)
你需要做这样的事情:
ResultSet rs = stmt.executeQuery(sql);
int count = -1;
if (rs.next())
{
count = rs.getInt(1);
}
Run Code Online (Sandbox Code Playgroud)
这在JDBC教程中得到了很好的解释:http:
//docs.oracle.com/javase/6/docs/technotes/guides/jdbc/getstart/resultset.html#998035
| 归档时间: |
|
| 查看次数: |
3604 次 |
| 最近记录: |