2010-02-11 4 views
3

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

ответ

3

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

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

+0

Спасибо. Я проведу Hibernate. Но похоже, что потребуется всего пару дней, чтобы использовать его. К тому же относятся вопросы производства, на которые вы ссылаетесь? Каков оптимальный способ. Если я изучаю новое, я бы мог также изучить то, что является оптимальным способом производства. – user220201

+0

Проблема с выпуском, на мой взгляд, заключается в том, что вы, вероятно, не хотите, чтобы hibernate автоматически обновлял схему вашей производственной базы данных. –

2

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

2

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

Вы действительно хотите узнать некоторые бит 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.

1

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

1

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

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

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

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

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

1

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

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

0

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

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

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

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

Смежные вопросы