我必须使用java查询MS SQL DB。我正在使用以下代码查询数据库
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:jtds:sqlserver://XXX.XX.XX>XX:1433/DBNAME", "USERNAME", "Password");
querystr="select DATEDIFF(second,Finish_Time,ReqTime) As FinishDifference from DB.SCHEMA.TABLE where ID='123'";
Statement stmt=conn.createStatement();
ResultSet res=stmt.executeQuery(querystr);
System.out.print(res.getRow());
当我使用查询字符串手动查询数据库时,我能够成功获取结果,但res.getRow()显示为0.
答案 0 :(得分:1)
您忘记包含next()
来获取第一条记录:
ResultSet res=stmt.executeQuery(querystr);
if(res.next()) // add this line
System.out.print(res.getRow());
答案 1 :(得分:0)
getRow()
方法给出当前行的行号。第一行是数字1,第二行是数字2,依此类推。
并且如果当前没有当前行,则将当前行号设为0。
http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html#getRow()
答案 2 :(得分:0)
最初ResultSet返回当前光标位置。
ResultSet res=stmt.executeQuery(querystr);
res.getRow();// It will return 0 (Zero) because result set is pointing to begining of the first record
res对象指向数据库中表的第0个位置。当您在res.next();
如果你打电话
,它将转到下一条记录 res.getRow();// It will return 1 because cursor is moved to 1st record of table.
试试这个。
while(res.next())
{
System.out.println(res.getRow());
}
它将逐个打印所有行号。