jdbc - java - метод запроса - PullRequest
       2

jdbc - java - метод запроса

0 голосов
/ 12 августа 2010

Я использую JDBC для запроса базы данных MySQL для конкретных записей из двух таблиц.

Пример запроса MySQL:

SELECT
r.name
  , r.network
  , r.namestring
  , i.name
  , r.rid
  , i.id
  , d.dtime
  , d.ifInOctets
FROM router AS r
INNER JOIN interface AS i
ON r.rid = i.rid
INNER JOIN 1278993600_1_60 AS d
ON i.id = d.id
AND dtime BETWEEN 1279027200 AND 1279029000
WHERE r.network = "ITPN"
AND i.status = "active"
WHERE i.id BETWEEN 1418 AND 1518

Теперь можно добавить все нужные мне записи:

  r.name
, r.network
, r.namestring
, i.name
, r.rid
, i.id
, d.dtime
, d.ifInOctets

специально для массива и распечатать его на листе Excel?

Я пытался создать разные классы для 3 таблиц: r, i, d. Затем, когда я запросил базу данных, я создал объекты и добавил их в ArrayList s, которые я распечатал на другом листе. (Цель состоит в том, чтобы распечатать его на листе Excel)

Но этот метод заставляет меня хранить и перебирать миллионы объектов.

Существует ли какой-либо метод, позволяющий динамически добавлять все записи более простым и менее трудоемким способом и отправлять его на лист?

1 Ответ

2 голосов
/ 12 августа 2010

Было бы что-то вроде этого:

PreparedStatement stmt = cnt.prepareStatement("...");
try {
    /* ... */
    ResultSetMetaData meta = stmt.getMetaData();
    Object row[] = new Object[meta.getColumnCount()];
    ResultSet rs = stmt.executeQuery();
    while (rs.next()) {
        for (int i = 0; i < row.length; ++i) {
            row[i] = rs.getObject(i+1);
        }
        processRow(row);
    }
} finally {
    stmt.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...