经过一整天的研究,我迷上了应该是一段简单的代码的地方。
我只想从测试数据库中的raw_material表中获取所有记录。
这是我在做什么:
public static void fetchIthos(ArrayList<String> ithosList, UserDto user) {
// TODO Auto-generated method stub
//get our stuff first - raw materials and doc names and paths
try {
Connection conn = user.getConnection();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM raw_material where object_id > 0");
do {
String result = rs.getString("raw_material_number").toString();
System.out.println("next item: " + result);
//ithosList.add(rs.getString("raw_material_number"));
} while(rs.next());
}
catch (Exception e) {
ithosList.equals(null);
System.out.println("DB error : " + e);
}
}
这是mySQL中的结果:
因此我希望第一个“结果”为
MAN-500-121200000
,但显示为RAW-001485
我无法在代码中的任何地方“跳过”第一条记录,但是如果我放开它,它将跳过下一条到
MAN-500-056100000
我使用的用户连接错误吗?这是我能看到的唯一影响到这一点的东西。
我认为
user.getConnection()
只会对常规测试数据库执行此操作。 最佳答案
您的代码似乎不正确,预期的循环是:
while(rs.next()) {
String result = rs.getString("raw_material_number");
System.out.println("next item: " + result);
}
考虑使用
try-with-resources
语句来正确关闭Connection
,Statement
和ResultSet
,如下所示:try (Connection conn = user.getConnection();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM raw_material where object_id > 0")) {
// My code here
}
关于java - Java ResultSet跳过记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39002796/