Базы данных и Java - PullRequest
       4

Базы данных и Java

3 голосов
/ 11 февраля 2010

Я начинаю писать код Java и взаимодействовать с базами данных для моего проекта "nextbigthing". Может ли кто-нибудь направить меня к лучшему способу добавления / обновления таблиц / записей в базах данных? Здесь моя проблема. Слишком много повторений, когда дело доходит до кода БД в Java. Я должен сначала создать таблицы (я использую mysql). Затем я создаю классы на Java для каждой таблицы. Затем я создаю AddRow, DeleteRow, UpdateRow и Search * в зависимости от моих потребностей. Для каждой таблицы каждая потребность в создании этой огромной задницы SQL и все классы кажутся огромной тратой моего времени. Должен быть лучший, более простой и эффективный способ ведения дел. Есть ли что-то, чего я не знаю, что позволит мне просто сказать Java, что это за таблица, и она автоматически генерирует запросы и выполняет их для меня? Это простой SQL, который может генерироваться автоматически, если ему известны имена столбцов и взаимозависимости таблиц БД. Похоже, очень разумная вещь.

Ответы [ 8 ]

4 голосов
/ 11 февраля 2010

Оформить Hibernate - стандартное решение Java ORM .

3 голосов
/ 11 февраля 2010

Пользовательский спящий режим для отображения ваших классов в базу данных.

Установите его hbm2ddl.auto для обновления, чтобы избежать написания DDL самостоятельно. Но учтите, что это не самый оптимальный способ довести его до производства.

2 голосов
/ 11 февраля 2010

Конечно, есть намного лучший способ!

Вы действительно хотите изучить некоторые биты Java EE и, в частности, JPA для доступа к базе данных.

Чтобы получить полный курс по Java EE, ознакомьтесь с руководством Sun по Java EE 5. http://java.sun.com/javaee/5/docs/tutorial/doc/

Часть 4 - Enterprise Beans Часть 5 - Постоянство (JPA)

Затем вы хотите попробовать Hibernate (например), который имеет реализацию JPA.

Это для Java 5 или новее. Если вы все еще в Java 2, вы можете попробовать Hibernate или iBatis.

2 голосов
/ 11 февраля 2010

Рассмотрите возможность использования Hibernate: https://www.hibernate.org/ Он может создавать классы Java с обычными методами CRUD из существующей схемы базы данных.

1 голос
/ 11 февраля 2010

Или, если Hibernate слишком много, попробуйте Spring JDBC.Это избавляет вас от большого количества стандартного кода.

iBatis - еще один хороший выбор, промежуточный между Spring JDBC и Hibernate.

1 голос
/ 11 февраля 2010

Есть также крутящий момент (http://db.apache.org/torque/), который я лично предпочитаю, потому что он проще и делает именно то, что мне нужно.

С помощью крутящего момента я могу определить базу данных с помощью mysql (ну, я использую Postgresql, но Mysql также поддерживается), и Torque может затем запросить базу данных и затем сгенерировать классы Java для каждой таблицы в базе данных. С помощью Torque вы можете запрашивать базу данных и возвращать объекты Java правильного типа.

Он поддерживает предложения where (Либо с объектом Criteria, либо вы можете написать sql самостоятельно) и присоединяется.

Он также поддерживает внешние ключи, поэтому, если у вас есть таблица User и таблица House, где пользователь может иметь 0 или более домов, в объекте пользователя будет метод getHouses (), который выдаст вам список Объекты дома пользователь самостоятельно.

Чтобы получить первый взгляд на код, который вы можете написать, взгляните на http://db.apache.org/torque/releases/torque-3.3/tutorial/step5.html, который содержит примеры, которые показывают, как загружать / сохранять / запрашивать данные с крутящим моментом. (Все классы, используемые в этом примере, генерируются автоматически на основе определения базы данных).

1 голос
/ 11 февраля 2010

Вы также можете попробовать iBatis, если вы хотите контролировать SQL. Остальное JPA это хорошо. Вы также можете попробовать использовать Seam Framework. Имеет хорошие инструменты для обратного проектирования.

0 голосов
/ 11 февраля 2010

Это просто вопрос использования правильных инструментов. Используйте IDE с инструментами для автоматического создания одного и другого.

Если вы используете Eclipse для Java EE и решите перейти на JPA , то я могу порекомендовать воспользоваться встроенным Dali плагином . На Eclipse.org есть хороший PDF учебник .

Если вы используете Eclipse для Java EE и решите перейти к «доброй воле» Hibernate , то я могу порекомендовать воспользоваться плагином Hibernatetools . На Hibernate.org есть хорошее справочное руководство .

Оба инструмента способны осуществлять обратный инжиниринг из таблицы SQL в полноценные Javabeans / entity и / или файлы сопоставления. Это действительно снимает большую часть шаблонных болей. Паттерн DAO немного лишний при захвате JPA. В случае Hibernate вы можете использовать Generic DAO .

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