получение результата для запроса в консоли pgAdmin, но не через мой java-код

#java #postgresql #jdbc

Вопрос:

Я нажимаю на запрос:

 SELECT * 
FROM test_test 
where user_id_one = 123456789 
  and user_id_two = 123456788 
  and action_taken = 'CHECK' 
  and games_type = 'LUDDO' 
  and modified_on >= '2021-10-07 05:53:48'::timestamp 
  and modified_on < '2021-10-07 05:53:49'::timestamp
 

Я получаю результат в консоли pgAdmin, но когда я пытаюсь сделать то же самое с помощью кода Java, он не работает:

 ps = conn.prepareStatement("SELECT * FROM test_test where user_id_one = ? and user_id_two = ? and action_taken = ? and games_type = ? and modified_on >= ?::timestamp and modified_on < ?::timestamp");
ps.setInt(1,testTest.getUserIdOne());
ps.setInt(2,testTest.getUserIdTwo());
ps.setString(3,testTest.getActionTaken());
ps.setString(4,testTest.getGamesType());
ps.setString(5,new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(collusionDashboard.getModifiedOn().toDate()));
ps.setString(6,new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(collusionDashboard.getModifiedOn().plusSeconds(1).toDate()));
resultSet = ps.executeQuery();
log.info("{}",ps);
if (resultSet.next()) == getting false here {
           
        }
 

Когда я регистрировал данные, я получал тот же запрос, что и упомянутый выше.

Комментарии:

1. вы не должны передавать значения временных меток в виде строк. Передайте момент LocalDateTime использования setObject()

Ответ №1:

Вы пытаетесь зарегистрировать объект prepareStatement, вместо этого попробуйте зарегистрировать объект набора результатов.