Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from emp where deptno=31");
rs.last();
System.out.println("NoOfRows: "+rs.getRow());
первая строка кода говорит о том, что мы можем переместиться в любое место в наборе результатов (либо в первую строку, либо в последнюю строку, либо перед первой строкой, без необходимости проходить строку за строкой, начиная с первой строки, которая требует времени). Вторая строка кода здесь я выбираю записи, соответствующие запросу (25 записей), третья строка кода перемещает курсор на последнюю строку, а последняя строка кода получает текущий номер строки, который в моем случае равен 25. если записей нет, rs.last возвращает 0, а getrow перемещает курсор до первой строки, поэтому возвращение отрицательного значения означает отсутствие записей в db