Я начинаю писать код Java и взаимодействовать с базами данных для моего проекта «nextbigthing». Может ли кто-нибудь направить меня на лучший способ справиться с добавлением/обновлением таблиц/записей в базах данных? Вот моя проблема. Слишком много повторений, когда дело касается кода DB в java. Сначала мне нужно создать таблицы (я использую mysql). Затем я создаю классы в Java для каждой таблицы. Затем я создаю AddRow, DeleteRow, UpdateRow и Search * в зависимости от моей потребности. Для каждого стола каждая потребность в создании этого огромного заявления sql ass и классов все кажется огромной тратой времени. Должен быть лучший, более простой и эффективный способ делать вещи. Есть ли что-то, что я не знаю, что позволит мне просто сказать Java, что такое таблица, и она автоматически генерирует запросы и выполняет их для меня? Его простой SQL, который может быть сгенерирован автоматически, если он знает имена столбцов и зависимости между таблицами. Похоже, это очень разумная вещь.Базы данных и Java
ответ
Пользователь hibernate для отображения ваших классов в базу данных.
Установите свой hbm2ddl.auto для обновления, чтобы избежать записи DDL самостоятельно. Но обратите внимание, что это не самый оптимальный способ взять его на производство.
Рассмотрите возможность использования спящего режима: https://www.hibernate.org/ Он может создавать классы Java с помощью обычных методов CRUD из существующей схемы базы данных.
Конечно, есть намного лучший способ!
Вы действительно хотите узнать некоторые бит 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.
Вы также можете попробовать iBatis, если хотите контролировать SQL. Else JPA хорош. Вы также можете попробовать использовать Seam Framework. Он имеет хорошие инструменты для обратного проектирования.
Существует также крутящий момент (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, который содержит примеры, показывающие, как загружать/сохранять/запрашивать данные с крутящим моментом. (Все классы, используемые в этом примере, автоматически генерируются на основе определения базы данных).
Или, если Hibernate слишком много, попробуйте Spring JDBC. Это устраняет множество шаблонов для вас.
iBatis - еще один хороший выбор, промежуточный между Spring JDBC и Hibernate.
Это просто вопрос использования правильных инструментов. Используйте среду 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.
- 1. Java и MySQL базы данных
- 2. Java и базы данных Подключение
- 3. Поиск встроенной базы данных базы данных Java/
- 4. Обновление Java-базы данных SQL-базы данных
- 5. базы данных в Java
- 6. JAVA Инициализация базы данных
- 7. Стойкие базы данных Java
- 8. Переполнение базы данных Java?
- 9. Базы данных в java
- 10. Объект базы данных Java
- 11. Ошибка базы данных Java
- 12. Java Lib между AJAX и базы данных
- 13. Подключение базы данных java и oracle
- 14. Java и базы данных - таблицы инициализации
- 15. константы Обмен между Java и базы данных
- 16. Создание и подключение базы данных в Java
- 17. Java: проверка и инициализация базы данных
- 18. Java-имя пользователя и пароль базы данных
- 19. базы данных и Java в NetBeans
- 20. резервное копирование и восстановление базы данных java
- 21. Пользовательские базы данных и базы данных?
- 22. Связь базы данных в Java
- 23. Производительность: Java против базы данных
- 24. Java Большие вставки базы данных
- 25. Запросы базы данных в Java
- 26. Java с хранилищем базы данных
- 27. Java драйвер базы данных дизайн
- 28. Независимость базы данных Java SQL
- 29. Отображение базы данных Java случайно
- 30. Подключение базы данных Java Security
Спасибо. Я проведу Hibernate. Но похоже, что потребуется всего пару дней, чтобы использовать его. К тому же относятся вопросы производства, на которые вы ссылаетесь? Каков оптимальный способ. Если я изучаю новое, я бы мог также изучить то, что является оптимальным способом производства. – user220201
Проблема с выпуском, на мой взгляд, заключается в том, что вы, вероятно, не хотите, чтобы hibernate автоматически обновлял схему вашей производственной базы данных. –