我的代码即将访问我的数据库“toursdb”并获得一些结果。我正在使用命令行和javadb。当我使用 con.getMetaData 时,我确实得到了结果。当我使用 rs.getMetaData 时也是如此。我没有连接问题。但我的下面的程序没有打印任何内容。
//
import java.sql.*;
class JDBCTest
{
public static void main(String ... args) {
String url = "jdbc:derby://localhost:1527/c:/derbytuto/toursdb";
StringBuilder sb = new StringBuilder();
String query = "select * from AIRLINES";
try {
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
while(rs.next()) {
sb.append(rs.getString("AIRLINE") + " ");
sb.append(rs.getString("AIRLINE_FULL" + "\n");
}
System.out.println(sb);
} catch(SQLException x) {
x.printStackTrace();
}
}
}
//
最佳答案
con.getMetaData
检索此 ResultSet 对象的列的数量、类型和属性。因此,这不能保证您的表是否有数据。
如果您的程序没有打印任何内容,则它不会进入 while
循环,这意味着您的查询不会返回任何行。
您可能已经填充了数据,但是您需要提交这些数据,才能将其反射(reflect)/保存到您的数据库中否则您就赢了在另一个数据库 session 中看不到数据。
关于java - ResultSet.next() 不检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48599630/