Как получить превосходную проверку на террор запросов MySQL - PullRequest
6 голосов
/ 02 июня 2010

Я только начал использовать MySQL, и я вижу, как проснулся со строками! Я имею в виду, что компилятор не может поймать подобные ошибки, и это просто беспорядок! Можно ли добавить обертку или какой-нибудь класс, который делает что-то простое, например, создание функции, которая добавляет таблицу и запрашивает аргументы?

Я уверен, что есть такой инструмент, но я не могу найти его или узнать его название.

Ответы [ 3 ]

4 голосов
/ 02 июня 2010

Вы в основном ищете объект реляционного картографа. Hibernate является одним из пионеров в этой области. JPA - это новый и хорошо зарекомендовавший себя стандарт Java EE в этой области, созданный парнем из Hibernate. Hibernate и EclipseLink предлагают реализации JPA.

Существуют инструменты IDE для автоматической генерации классов Java на основе моделей баз данных и наоборот, такие как Инструменты Hibernate для "старого доброго" Hibernate и Eclipse Dali для JPA.

Если вы не хотите использовать ORM и / или не хотите автоматически генерировать объекты модели, вам просто нужно убедиться, что вы спроектировали правильные объекты модели для модели базы данных. То есть используйте свойство Long для поля BIGINT, свойство BigDecimal для поля DECIMAL и так далее. Обзор отображений по умолчанию можно найти в этой странице .

В "простой ванили" JDBC вы должны по крайней мере использовать PreparedStatement методы для составления SQL-запроса, а не для конкатенации в виде String. Существует множество методов setXXX() для определенного типа данных, таких как setLong(), setBigDecimal() и так далее. PreparedStatement не только облегчает настройку полноценных объектов Java, таких как Date и InputStream в запросе SQL, но также предотвращает код от SQL-инъекций атак . Вы можете узнать больше о PreparedStatement в руководстве по Sun JDBC , а базовый учебник по DAO можно найти в этой статье .

1 голос
/ 02 июня 2010

Дайте JDBC подготовленные заявления попробовать.

1 голос
/ 02 июня 2010

Вы можете использовать объектно-реляционный маппер, например Hibernate . См. Также Какой Java ORM вы предпочитаете и почему? .

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