Java вставляет дату в базу данных

может кто-нибудь рассказать мне элегантный способ вставки экземпляра даты Java в базу данных?

в настоящее время я использую IBATIS с Spring MVC. я определил свойство java.util.date в командном компоненте и редакторе свойств в контроллере для преобразования даты, однако я не могу вставить свойство java.util.date в БД.

я должен преобразовать это в экземпляр java.sql.date для хранения в БД?

если мне нужно конвертировать, то куда писать код конвертации(DAO,...)?

я новичок в J2EE, поэтому довольно запутался с обработкой объектов даты.

любая помощь?

С уважением


person ernesto    schedule 05.10.2009    source источник
comment
Можете ли вы дать более подробную информацию о том, почему вы не можете вставить?   -  person Yuval    schedule 05.10.2009
comment
См. аналогичный вопрос, Дата Java - вставить в базу данных.   -  person Basil Bourque    schedule 03.07.2015


Ответы (3)


Должен сказать, что я не знаком с iBATIS... Но просматривая их documentation (стр. 27), вы можете добавить атрибут jdbcType к своему XML-сопоставлению и конкретно сообщить платформе ORM, какой тип использовать .

person Yuval    schedule 05.10.2009

Если вы не используете Pache Derby/javadb в качестве базы данных, то тип DATE базы данных не имеет ничего общего с классом Date в Java.

Кроме того, нет стандартизации типа DATE между системами баз данных. Дедушка DB2 использует «гггг-мм-дд» в качестве внешнего формата строки, этому соглашению следовали Sybase и, следовательно, SQLServer и odbc. Однако DATEFORMAT можно легко переопределить в конфигурации SQLServer, поэтому он может оказаться почти любым.

Формат даты по умолчанию для баз данных ORACLE устанавливается во время установки и может быть практически любым в зависимости от прихоти установщика.

Большинство ORM (не очень хорошо знакомых с IBATIS) можно сконфигурировать для обработки этих преобразований дат, если вы знаете, чего ожидает целевая DB2.

person James Anderson    schedule 05.10.2009
comment
спасибо, Джеймс, я думаю, ibatis не предоставляет конфигурацию для преобразования даты. Итак, что делать с классом java.sql.date, необходимо ли преобразовать java.util.date в sql.date, чтобы сохранить его в БД? - person ernesto; 05.10.2009
comment
Кстати, я имею в виду базу данных под БД, это не DB2. Извините! - person ernesto; 05.10.2009

Здесь есть хорошее введение с большим количеством примеров кода: http://www.javalobby.org/articles/ibatis-introduction/

person Philip Davis    schedule 05.10.2009