Примитивный тип объекта доступа к данным против типа объекта? - PullRequest
1 голос
/ 07 декабря 2011

Хотелось бы узнать мнение о лучшем пути.

Как видите, int не может быть нулевым.Где как объект Integer может.

Проблема: Значения базы данных со столбцом, который является числом, могут быть нулевыми или могут содержать число.Когда база данных передает значение null, мы получаем и исключение, утверждающее, что «примитивные значения не могут быть нулевыми»

Но когда мы используем класс Integer, мы создаем этот объект (который, конечно, больше / большепримитивный тип int)

Так что у меня возникает пара вариантов.

  1. Использовать тип целого числа.
  2. Установить для столбца базы данных значение по умолчанию
  3. Установите для int значение по умолчанию, если в базе данных есть что-то другое, затем примите это

Любые другие предложения?

Ответы [ 3 ]

3 голосов
/ 07 декабря 2011

Я не думаю, что вам нужно беспокоиться о производительности преобразования целых чисел <-> int (100000000 opsec), если вы запрашиваете базу данных (5000 op / sec). Смело используйте коробочные типы.

2 голосов
/ 07 декабря 2011

Мой выбор:

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

Второе - если первое невозможно, я бы использовал объекты Integer без каких-либо оговорок. Я не думаю, что у вас будут проблемы с перфорацией. Код будет чистым, но документ будет содержать переменную, которая «может содержать ноль и проверять ноль при работе с этой переменной».

Я бы всегда делал что-то более понятное и понятное, чтобы программное обеспечение могло быть легко обслуживаемым и гибким.

2 голосов
/ 07 декабря 2011

Используйте Hibernate (или аналогичный ORM) и дайте фреймворку напрямую работать с базой данных.Тогда вы можете запрограммировать его так, как вам нравится, и вам не придется иметь дело с конвертацией.

Изобретать колесо редко бывает так же просто, как и просто использовать чужое колесо, особенно когда тысячи других уже используют егоколесо.

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