Как вставить длинное значение NULL? - PullRequest
2 голосов
/ 05 ноября 2011

У меня есть база данных, состоящая из одной таблицы с несколькими полями, одним из которых является номер телефона, который хранится как ЦИФРОВОЙ.Поскольку телефонный номер состоит из 10 цифр, в моем коде я записал переменную как LONG.

Мой вопрос в инструкции вставки как передать значение NULL?Это вообще возможно?Я не могу присвоить нулевое значение переменной LONG, поэтому мне интересно, как это сделать ...

Ответы [ 3 ]

7 голосов
/ 05 ноября 2011

Поскольку номер телефона состоит из 10 цифр, в моем коде я записал переменную как ДЛИННУЮ.

Плохая идея.Телефонные номера могут выглядеть как номера, но это не так.Это строки символов, которые бывают в основном цифрами.Но они также могут содержать символы, такие как +.

. Вместо этого используйте String.


Обновление: если вам необходимо использовать числовой тип, убедитесь, что вы используетеLong вместо long.Capitilazation имеет важное значение.И, кстати, в стандартной Java нет такого типа, как LONG.

2 голосов
/ 05 ноября 2011

Если вам крайне необходимо использовать цифры для номера телефона, почему бы просто не кодировать несуществующий номер телефона во что-то вроде 0L или -1L?

Редактировать: Кстати, вы говорите, что база данных ограничена числовым форматом. То же самое относится и к стороне Java?

long dbPhoneNumber = getTheLongFieldFromTheDatabase();
String internalPhoneNumberRepresentation = Long.toString(dbPhoneNumber);
doSomethingWithString();
dbPhoneNumber = internalPhoneNumberRepresentation == null ? 0L : internalPhoneNumberRepresentation;
storeLongFieldToDatabase(dbPhoneNumber);

Должно ли более или менее делать все, что вам нужно, верно?

0 голосов
/ 05 ноября 2011

Прежде всего, почему вы храните номер телефона в виде числового поля?В большинстве случаев вы, вероятно, также хотите сохранить такие вещи, как «+41 (52) 123 455», которые вы теряете с числовыми типами данных, но все в порядке.

Затем для вставки нулевых значений: Как насчет:

INSERT INTO mytable (phone) VALUES (NULL);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...