UaException в userdatabase-примере

Класс java.util.Date в Java представляет определенный момент времени (e, .g., ноябрь 25 16:30:45 до миллисекунды), но тип данных DATE в БД представляет собой только дату (например, 2013 25 ноября). Чтобы вы не предоставили объекту java.util.Date DB по ошибке, Java не позволяет вам установить параметр SQL прямо в java.util.Date:

PreparedStatement st = ...
java.util.Date d = ...
st.setDate(1, d); //will not work

Но он все еще позволяет сделать это с помощью силы / намерения (тогда часы и минуты будут игнорироваться драйвером БД). Это делается с помощью класса java.sql.Date:

PreparedStatement st = ...
java.util.Date d = ...
st.setDate(1, new java.sql.Date(d.getTime())); //will work

Объект java.sql.Date может хранить момент времени (так что его легко создать из java.util.Date) но будет генерировать исключение, если вы попробуете задать ему часы (чтобы обеспечить соблюдение его концепции только даты). Ожидается, что драйвер DB распознает этот класс и просто будет использовать 0 для часов. Попробуйте следующее:

public static void main(String[] args) {
  java.util.Date d1 = new java.util.Date(12345);//ms since 1970 Jan 1 midnight
  java.sql.Date d2 = new java.sql.Date(12345);
  System.out.println(d1.getHours());
  System.out.println(d2.getHours());
}
1
задан Lukas 18 January 2019 в 11:02
поделиться

1 ответ

Эти ошибки означают, что вы, вероятно, не следовали инструкциям по созданию хранилища ключей и / или принятию сертификатов.

Может быть проще начать с других примеров в модуле milo-examples. Это несколько не поддерживается и было удалено из следующего выпуска.

0
ответ дан Kevin Herron 18 January 2019 в 11:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: