Простое хранение в драйвере JDBC - PullRequest
0 голосов
/ 16 сентября 2010

Я собирался попробовать использовать JDBC и драйвер sqlite для сохранения информации в файл. Кажется, он работает нормально, но мне было интересно, есть ли более автоматизированный способ его настройки. Может быть, почти как пара ключ-значение.

Во всяком случае, это то, что я делаю сейчас ...

Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
Statement stat = conn.createStatement();
stat.executeUpdate("drop table if exists people;");
stat.executeUpdate("create table people (name text, age int, etc...);");
PreparedStatement prep = conn.prepareStatement(
  "insert into people values (?, ?, etc... );");

for (int i = 0; i < persons.length; i++) {
   prep.setString(1, persons[i].name)
   prep.setString(2, persion[i].age)
   ....

   prep.addBatch()
}

conn.setAutoCommit(false);
prep.executeBatch();

(?,?) Довольно хакерски, когда есть около десяти полей, которые я хочу сохранить в классе, которые могут измениться позже. Подсчет кажется очень старой школы.

В идеале, я бы просто хотел пройтись по своему классу и аннотировать, какие поля я хотел бы сохранить (в основном примитивы, такие как int), но если они являются объектами, получите поля, которые они аннотируют. Либо это, либо что-то, что просто находится на JDBC и имеет немного более быстрый и чистый синтаксис для построения таблицы и добавления объектов. Это не должно быть постоянным. Это только для редких чтений и записей.

1 Ответ

0 голосов
/ 16 сентября 2010

Ну, похоже, вы ищете JPA или Hibernate.Эти фреймворки делают именно то, что вы описываете, аннотируют ваши поля и сохраняют их в базе данных.Хотя есть и кривая обучения, но она того стоит.

Вот дополнительная информация о JPA .

и здесь для спящего режима .

Эти инфраструктуры позволят отображать существующую базу данных или создавать таблицы для новых разработок.

Обратите внимание, что это не легкие платформы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...