Вставьте и проверьте данные в базе данных PostgreSql - PullRequest
0 голосов
/ 10 февраля 2012

У меня следующая проблема.Используя приложение Java, мне нужно вставлять данные из внешнего XML-файла в таблицу базы данных каждую 1 секунду.

Кроме того, я должен выполнить запрос выбора / обновления для той же таблицы.

Стол убирается каждые несколько дней.У меня вопрос: как это оптимально решить?Все должно работать live.Мы не можем допустить ситуации, когда есть сдвиг времени (записи не проверяются каждые 1 с).

Есть идеи?

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

В зависимости от того, насколько сложным будет ваше приложение, вы можете использовать JPA / Hibernate для доступа к вашей базе данных. Это значительно упрощает доступ к вашей БД (поскольку вы манипулируете POJO для доступа к вашим данным), но недостатком является то, что она не оптимальна с точки зрения производительности (манипулирование необработанными sql и необработанными данными всегда будет быстрее, чем манипулирование объектами). *

Для вашей проверки работы я бы настроил кварц, который даст вам возможность периодически планировать работу.

Ваш вопрос довольно размыт, чтобы дать больше подсказок. Это веб-приложение? Java EE один? Тяжелый клиент? Насколько плохо вам нужна высокая производительность? Хотите ли вы создать маленькое приложение без будущего, написанное на салфетке для пиццы, или вы планируете иметь приложение, которое будет расширяться в будущем?

0 голосов
/ 10 февраля 2012

10-20 записей в секунду - не большое количество.В любом случае, если у вас есть проблемы с производительностью, убедитесь, что вы используете пакетные вставки JDBC :

PreparedStatement stmt = con.prepareStatement(
    "INSERT INTO table_name (field_name1, field_name2) VALUES (?, ?)");

stmt.setInt(1, 2000);
stmt.setString(2, "String value");
stmt.addBatch();

stmt.setInt(1, 3000);
stmt.setString(2, "Other String");
stmt.addBatch();

// submit the batch for execution
int[] insertCounts = stmt.executeBatch();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...