Java с хранилищем базы данных - PullRequest
2 голосов
/ 13 октября 2009

Мне нужно написать программу, которая может принимать заказы, хранить их, а затем обращаться к ним позже, приложение должно быть написано на Java. Из-за этого я искал различные способы использования базы данных с Java.

Я изучал использование JDBC с базой данных драйверов mySQL, а также изучал javaDB. Что бы вы порекомендовали мне сделать для создания этой программы? Есть ли у кого-нибудь опыт написания программы, которая использует БД в Java и может дать мне какие-нибудь советы?

Спасибо!

Ответы [ 6 ]

3 голосов
/ 13 октября 2009

Я уверен, что каждый разработчик Java написал приложение, которое взаимодействует с базой данных, используя JDBC. Многие люди перестают использовать сырой JDBC довольно быстро, используя что-то вроде Spring JDBC-обертку или полноценный ORM , например Hibernate . Все это сделает написание слоя базы данных немного легче, но я обычно чувствую, что вы должны иметь разумное понимание того, что происходит под капотом, прежде чем углубляться в них.

Итак, вопрос о работе или выделенной базе данных? Это зависит. Сколько людей будут одновременно получать доступ к приложению? (Действующая база данных будет бесполезной, если вам нужно, чтобы несколько человек обращались к одной и той же базе данных). Насколько вы контролируете окружающую среду? (предлагая выделенную базу данных, если вы не можете ее установить - пустая трата времени). Это веб-приложение или приложение для ПК? (Сетевое решение могло бы использовать внутреннюю базу данных и позволить нескольким пользователям получать к ней доступ). Насколько важны данные? (Внутрипроцессная база данных с меньшей вероятностью будет иметь тот же уровень резервного копирования, что и выделенная база данных).

2 голосов
/ 13 октября 2009

В вашем случае я бы использовал Java6 и Java DB (он же Derby). Дело не в том, что установка и использование MySQL сложны (на самом деле это довольно просто), но зачем вам это делать, если у вас уже есть работоспособная база данных?

С учетом вышесказанного, чтобы начать работу с JavaDB, взгляните на Java DB Reference , там много технических статей. Обратите особое внимание на Работа с базой данных Java DB (Derby) - учебный курс по IDE NetBeans 6.5 .

Для самого доступа к данным вы можете использовать Java Persistence API (JPA), как в Создание пользовательского приложения базы данных Java для настольных ПК . Но я бы не стал делать это для домашней работы. Вместо этого я бы начал с основ, то есть с JDBC, и делал все вручную. Вы упомянули об этом, и я думаю, что это хорошая идея. Взгляните на Учебное пособие: база данных Java с Derby, собственная база данных Java с открытым исходным кодом , это может быть очень полезно (я не говорю, что приведенный там код продвигает все лучшие практики, но он довольно прост и поможет вам начал).

Не загрязняйте свой ум такими сложными темами, как пул соединений, не используйте фреймворки, такие как Hibernate, JPA или даже Spring (эти фреймворки знают, как делать вещи, а вам нет, и дело не в том, чтобы научиться использовать рамки, по крайней мере, не сейчас). Держите это простым и сексуальным, но сделайте это вручную.

1 голос
/ 13 октября 2009

У Sun есть два онлайн-учебника по JDBC, которые могут оказаться полезными, Введение в JDBC и Основы JDBC . Они являются частью гораздо большей серии Java Tutorials , которые содержат много полезной информации. Обычно это первое место, куда я смотрю, когда сталкиваюсь с тем, чего не знаю, как делать в Java.

1 голос
/ 13 октября 2009

Один действительно простой подход заключается в использовании классов Spring JDBC, которые предоставляют множество удобных методов по сравнению с необработанным JDBC и автоматически управляют высвобождением ресурсов. Spring также предоставляет расширенную иерархию исключений, которая позволяет выполнять определенные действия на основе определенных ошибок (например, повторная попытка блокировки базы данных).

Кроме того, в отличие от многих других постоянных слоев, Spring не скрывает реализацию JDBC под оболочками (он действует как тонкий слой), что позволяет вам использовать необработанный JDBC при необходимости.

* Инициализация 1006 *

// First create a DataSource corresponding to a single connection.
// Your production application could potentially use a connection pool.
// true == suppress close of underlying connection when close() is called.
DataSource ds = new SingleConnectionDataSource("com.MyDriver", "Database URL", "user", "password", true);

// Now create a SimpleJdbcTemplate passing in the DataSource.  This provides many
// useful utility methods.
SimpleJdbcTemplate tmpl = new SimpleJdbcTemplate(ds);

Обновление SQL (или вставка)

// Simple example of SQL update.  The resources are automatically release if an exception
// occurs.  SQLExceptions are translated into Spring's rich DataAccessException exception
// hierarchy, allowing different actions to be performed based on the specific type of
// error.
int nRows = tmpl.update("update Foo set Name = ? where Id = ?", "Hello", 5);
assert nRows == 1;

SQL-запрос

// Example of SQL query using ParameterizedRowMapper to translate each row of the
// ResultSet into a Person object.
tmpl.query("select * from Person", new ParameterizedRowMapper<Person>() {
  Person mapRow(ResultSet rs, int rowNum) {
    return new Person(rs.getString("FirstName"), rs.getString("LastName"));
  }
});
0 голосов
/ 13 октября 2009

Я, конечно, могу порекомендовать JavaDb (база данных, которая поставляется с Java 6). Это была оригинальная база данных Derby от IBM и очень способная. Он хорошо интегрируется с Java-программой (либо работает как отдельный процесс, либо в той же виртуальной машине, что и клиентская программа). Вам не придется беспокоиться о дополнительной установке non_Java (что может быть важно, в зависимости от того, как / где вы развертываете).

Если вам нужно / нужно ORM (объектно-реляционное отображение), Hibernate является де-факто стандартом Java в наши дни ( вот введение ). Однако, если это излишне для вашего проекта, по крайней мере, проверьте Apache Commons DbUtils , что уменьшит большую часть вашего стандартного кода.

0 голосов
/ 13 октября 2009

Проверьте следующие примеры: http://www.roseindia.net/jdbc/jdbc-mysql/. Множество примеров кода об использовании JDBC с MySQL.

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