Я борюсь с набором результатов, который представляет пустые поля, где обычно должны быть значения (я протестировал запрос в Oracle SQL dev). Странно, потому что одно из моих полей («openDate» -> rs.getDate (5)) правильно выбрано, но не другие. Вот мой код:Java ResultSet анонимно возвращает пустые поля
public void refreshData() {
try {
Globals.itrackDatabase.connect();
ResultSet rs;
rs = Globals.itrackDatabase.execQuery(Globals.caseRankingQuery + " WHERE case_num = '19816641'");
// ResultSetMetaData metaData = rs.getMetaData();
// int numberOfColumns = metaData.getColumnCount();
while (rs.next()) {
System.out.println(rs.getString(1));
Case caseObj = new Case(rs.getString(1), rs.getString(2), rs.getString(3),
rs.getString(4), rs.getDate(5), rs.getString(6), rs.getString(7),
rs.getString(8), null, rs.getString(9), rs.getString(10), 0);
Globals.caseList.add(caseObj);
}
for (int i = 0; i <= Globals.caseList.size()-1; i++) {
data[i][1] = Globals.caseList.get(i).id;
data[i][2] = Globals.caseList.get(i).service;
data[i][3] = Globals.caseList.get(i).module;
data[i][4] = Globals.caseList.get(i).summary;
data[i][5] = Globals.caseList.get(i).openDate;
data[i][6] = Globals.caseList.get(i).hub;
data[i][7] = Globals.caseList.get(i).endUser;
data[i][8] = Globals.caseList.get(i).endUserGroup;
data[i][9] = Globals.caseList.get(i).assignationDate;
data[i][10] = Globals.caseList.get(i).timeSpent;
data[i][11] = Globals.caseList.get(i).assignee;
data[i][12] = Globals.caseList.get(i).assigneeBacklog;
}
Globals.itrackDatabase.disconnect();
System.out.println(Arrays.deepToString(data));
this.fireTableDataChanged();
} catch (SQLException e) {
System.out.println("Query failed.");
e.printStackTrace();
}
}
И:
public ResultSet execQuery(String query) {
try {
Statement stmt = connection.createStatement();
System.out.println("Executing: " + query);
return stmt.executeQuery(query);
} catch (SQLException e) {
System.out.println("Query failed.");
e.printStackTrace();
return null;
}
}
Конструктор случае объект:
public Case(String id, String service, String module, String summary,
Date openDate, String hub, String endUser, String endUserGroup,
Date assignationDate, String timeSpent, String assignee, int assigneeBacklog) {
this.id = id;
this.service = service;
this.module = module;
this.summary = summary;
this.openDate = openDate;
this.hub = hub;
this.endUser = endUser;
this.endUserGroup = endUserGroup;
this.endUserGroup = endUserGroup;
this.assignationDate = assignationDate;
this.timeSpent = timeSpent;
this.assignee = assignee;
this.assigneeBacklog = assigneeBacklog;
}
Этот запрос:
SELECT case_num, service, module, summary, open_date, case_hub, end_user, end_user_site, end_user_dept, time_spent, assignee
FROM CASE
WHERE case_num = '19816641';
Моя консоль отладки:
-------- Oracle JDBC Connection Testing ------
Connected to Itrack database.
Executing: SELECT case_num, service, module, summary, open_date, case_hub, end_user, end_user_site, end_user_dept, time_spent, assignee FROM CASE WHERE case_num = '19816641'
[[null, , , null, , 2015-07-19, , , , null, , , 0]]
Где находится запрос, который вы передаете вашему методу? –
Просьба показать конструктор 'Case'. –
Я не думаю, что это связано с объектом case, так как я сначала отлаживал свои результаты (я обновил свой пост с помощью запроса и конструктора case) – Jokas