Различие между ResultSet.TYPE_SCROLL_INSENSITIVE и ResultSet.TYPE_SCROLL_SENSITIVE

177
06 декабря 2018, 16:10

Доброго времени суток.

Как я понял ResultSet.TYPE_SCROLL_SENSITIVE, в отличии от ResultSet.TYPE_SCROLL_INSENSITIVE, чувствителен к изменениям, которые произошли с базой данных после создания объекта ResultSet. Но я не могу понять, что означает "чувствителен к изменениям".

Я пробовал создавать ResultSet с типом TYPE_SCROLL_SENSITIVE и в течении 10 секунд запрашивать первую строку таблицы:

ResultSet result = statement.executeQuery("select * from numbers");
for(int i = 0; i < 10; i++) {
    result.absolute(1);
    System.out.printf("number=%d name=%s\n",
                    result.getInt("number"), result.getString("name"));
    Thread.sleep(1000);
}

В тоже время запускать второй поток в котором каждые 500 миллисекунд менять первую строку этой же таблицы:

for(int i = 0; i < 10; i++) {
    Thread.sleep(500);
    String sql = String.format("UPDATE NUMBERS SET number=%d WHERE id=1",
                    (int) (Math.random() * 900_000_000));
    statement.executeUpdate(sql);
}

Я ожидал, что вносимые изменения увидит ResultSet из первого потока, но это не так. Объект ResultSet созданный с типом ResultSet.TYPE_SCROLL_INSENSITIVE ведет себя точно также.

Объясните пожалуйста, в чем тогда заключается разница между этими двумя типами ResultSet.

P.s. использую СУБД H2.

Answer 1
@Override
public boolean supportsResultSetType(int type) {
    debugCodeCall("supportsResultSetType", type);
    return type != ResultSet.TYPE_SCROLL_SENSITIVE;
}

Драйвер H2 не поддерживает TYPE_SCROLL_SENSITIVE.

READ ALSO
Ошибка при создании интерфейса: &ldquo;Unable to parse template &rdquo;Interface&ldquo; Idea&rdquo;

Ошибка при создании интерфейса: “Unable to parse template ”Interface“ Idea”

Использую Intellij IDEAПри создании интерфейса IDE выдает ошибку:

185
Проверка набора текста в Edit Text

Проверка набора текста в Edit Text

Появилась необходимость отслеживать набор символов в Edit Text, так сказать, in real-timeТ

163
notifyDataSetChanged() - как обновить адаптер?

notifyDataSetChanged() - как обновить адаптер?

Пытаюсь разобраться с ExpandableListView и не пойму как обновить адаптер? когда вызываю адаптер expListAdapter, то он кроме двух методов notifyAll() и notify() ничего...

203
Почему не работает Autocomplete для SASS в Sublime Text 3?

Почему не работает Autocomplete для SASS в Sublime Text 3?

Установил SASS для саблайма, также ранее был установлен SCSS для Sublime Text 3, но autocomplete всех CSS свойств работает только для SCSSКто знает в чем проблема...

192