Java и mySQL, зачем создавать объекты классов с данными из базы данных? - PullRequest
3 голосов
/ 03 апреля 2020

Итак, у меня есть домашнее задание для создания консольного приложения в Java при использовании mySQL баз данных. Наш учитель хочет, чтобы мы использовали объекты и ArrayLists, поскольку Java является «объектно-ориентированным языком».

Я не уверен, почему я должен анализировать mySQL ResultSets в объекты, а не печатать их непосредственно в мои методы в хорошем формате printf. Точно так же, почему я должен создавать объекты класса, когда вставляю новые данные, а не изменяю базу данных напрямую через мое соединение.

Может кто-нибудь объяснить, и указать мне правильное направление. Мне не нужен код. Просто пытаюсь понять.

Ответы [ 2 ]

3 голосов
/ 03 апреля 2020

Один метод printf для ResultSet - неправильный способ реализации! Набор результатов может иметь различное количество разных типов данных.

Правильный способ - проанализировать их для объекта. Для каждой таблицы у вас может быть свой класс с конструктором. Например:

У вас есть таблица «Персона» с атрибутами Имя, возраст, адрес. Затем вы создаете конструктор

public Person(String name, int age, String address){}

или вы можете создать метод stati c для синтаксического анализа следующим образом:

public static Person parseFromResultSet(ResultSet r) throws ParseException {}

, а затем вы даже можете написать свой собственный PersonParseExcpetion.

2 голосов
/ 03 апреля 2020

"Я не уверен, почему я должен анализировать mySQL ResultSets в объекты, а не печатать их напрямую в хорошем формате printf. Точно так же, почему я должен создавать объекты класса при вставке новых данных, а не при изменении базы данных напрямую через мое соединение. "

... в основном потому, что в реальных приложениях вы, скорее всего, будете делать с записями намного больше, чем просто печатать их непосредственно на консоль и с этой точки зрения полезно поместить их в solid структуру данных, которую вы можете легко перемещать и манипулировать.

Это также может упростить поддержку кода - реальные приложения обычно обновляются и изменяются много раз и могут содержать множество различных типов данных и структур, некоторые из которых могут представлять собой сложные представления, состоящие из несколько других структур, собранных вместе - и проще построить сложный объект, если у вас уже есть много небольших объектов, из которых можно его изготовить (представьте, что собираете мебель из готовых секций, а не начинайте с распиливания всех досок и изготовления всех винтов самостоятельно ).

Вы можете думать о нем как о промежуточном слое между тем, что находится на экране, и тем, что находится в хранилище, которое в более сложных приложениях не всегда будет структурировано или отображаться точно так же, как друг друга, поэтому возникает необходимость для посредника. Иногда дисплей и хранилище даже не будут находиться на одном и том же компьютере (как на таких сайтах, как этот).

Поэтому я полагаю, что целью этого задания может быть то, чтобы вы привыкли использовать эти структуры, но не делая общую цель слишком сложной. Истинная цель упражнения не всегда очевидна.

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