我有一个包含表格的SQLITE数据库: 服务= {ID,端口名称}
我打开命令行并使用以下数据填充它:
1 23 abc
2 25 xyz
然后我正在开发一个使用JDBC bridge来获取结果的应用程序。我使用了以下startegy:
import java.sql.*;
public class SQLiteJDBC
{
public static void main( String args[] )
{
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:test.db");
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT ID FROM SERVICE WHERE PORT=23;" );
System.out.println(rs.getInt("ID"));
}
catch(Exception e){ }
}
}
令我惊讶的是返回4作为结果但是当我在命令行上键入以下内容时,结果是1是正确的。 为什么结果有差异?
答案 0 :(得分:2)
忘记了rs.first/rs.next
while (rs.next()) {
System.out.println(rs.getInt("ID"));
}
rs.close();
stmt.close();
...
catch (Exception e) {
e.printStacktrace();
}
通常人们甚至会期待一个SQLException,但显然没有发生(你有4个)。