Флаг ResultSet.TYPE_SCROLL_SENSITIVE не выдает новые данные, при обновлении базы. Почему?

Флаг ResultSet.TYPE_SCROLL_SENSITIVE, как можно понять из его названия, используется в Java JDBC для создания скроллируемого и чувствительного к изменениям в базе данных курсора ResultSet. Когда вы используете этот флаг, курсор ResultSet может перемещаться вперед и назад по результатам запроса, а также чувствовать изменения, происходящие в базе данных после выполнения запроса.

Но, несмотря на это, флаг ResultSet.TYPE_SCROLL_SENSITIVE не гарантирует автоматическую синхронизацию с базой данных. Поэтому, если в базе данных происходят изменения, они могут не быть автоматически отражены в ResultSet.

На самом деле, ResultSet.TYPE_SCROLL_SENSITIVE является довольно медленным и затратным с точки зрения производительности флагом из-за необходимости постоянной проверки базы данных на наличие изменений. Поэтому в некоторых JDBC драйверах может быть отключено автоматическое обновление ResultSet с изменениями базы данных для оптимизации производительности.

Если вы хотите, чтобы ResultSet автоматически обновлялся с изменениями в базе данных, вам может потребоваться использовать другой флаг ResultSet.TYPE_SCROLL_INSENSITIVE или выполнить запрос повторно, чтобы получить самую последнюю информацию из базы данных. ResultSet.TYPE_SCROLL_INSENSITIVE позволяет создавать скроллируемый курсор, но он не будет реагировать на изменения в базе данных после выполнения запроса.

Также стоит учесть, что возможность обновления ResultSet зависит от типа и настроек самой базы данных. Некоторые базы данных не поддерживают обновление или обратные прокрутки ResultSet вообще, независимо от установленных флагов в Java JDBC.

В итоге, чтобы получить новые данные после обновления базы данных, вам необходимо либо выполнить запрос повторно, либо использовать более подходящий флаг ResultSet в соответствии с требованиями вашего приложения.