Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
При использовании SQL Server 2005, у Вас есть опция использования Row_Number
Если Вы хотите вставить данные с последовательным ключом, но Вы не хотите должными быть запрашивать базу данных снова для получения просто вставленного ключа, я думаю, что только два варианта:
, Если я делаю клиентскую генерацию ключей, я любовь GUID. Я думаю, что они красивы как heck.
row["ID"] = Guid.NewGuid();
, Что строка должна класть на капоте спортивного автомобиля где-нибудь.
Я полностью согласовываю и сделал это в прошлом году на проекте.
я просто составил таблицу с названием последовательности, текущего значения, & инкрементная сумма.
Затем я создал 2 procs для добавления & удалите их. И 2 функции для получения затем, & станьте текущими.
Последовательности, как реализовано Oracle требуют вызова к базе данных перед вставкой. идентификационные данные, как реализовано SQL Server требуют вызова к базе данных после вставки.
Каждый больше не hackish, чем другой. Результирующий эффект является тем же - уверенность/зависимость в хранилище данных для обеспечения уникальных искусственных значений ключа и (в большинстве случаев) двух вызовов к хранилищу.
я предполагаю, что Ваша реляционная модель основана на искусственных ключах, и в этом контексте, я предложу следующее наблюдение:
Мы никогда не должны стремиться пропитать искусственные ключи со значением; их единственная цель должна быть к связанным со ссылкой записям.
, Что Ваша потребность связана с упорядочиванием данных? это может быть обработано в представлении (презентация), или действительно ли это - истинный атрибут Ваших данных, которые должны быть сохранены?
столбец Identity примерно походит на последовательность.
Вы могли просто использовать простые таблицы и использовать их в качестве последовательностей. Это означает, что Ваши вставки всегда были бы:
BEGIN TRANSACTION
SELECT number from plain old table..
UPDATE plain old table, set the number to be the next number
INSERT your row
COMMIT
, Но не делают этого. Блокировка была бы плоха...
я запустил на SQL Server и мне, схема "последовательности" Oracle была похожа на взлом. Я предполагаю, что Вы происходите из другого направления и Вам, и scope_identity () похож на взлом.
Преобладают над ним.В чужой стране жить - чужой обычай любить.