После утреннего исследования я в тупике о том, что должно быть простым фрагментом кода.Java ResultSet Пропущенные записи
Все, что я хочу, это получить все записи из нашей таблицы 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
Я не вижу нигде в коде, что я пропускаю первую запись, но если я t it go, он пропустит следующий до MAN-500-056100000
Я использую неправильное подключение пользователя? Это единственное, что я вижу, что влияет на это.
Я думал, что user.getConnection()
сделает это только для обычной базы данных испытаний.
'ithosList.equals (null);' ничего не делает. Этот метод возвращает true, если 'ithosList' является' null', иначе false. –
Я еще не стал кодировать этот фрагмент. Я хочу получить правильные результаты, прежде чем добавить к арраисту. –
Если вы выполните 'ResultSet rs = st.executeQuery (« SELECT * FROM raw_material, где object_id> 0 »);' дважды, есть ли гарантия, что результаты будут возвращены в том же порядке? – bradimus