В вашем запросе SQL есть опечатка.Вы дали ОТ ФОРМЫ.Это должно быть
ps3 = con.prepareStatement("SELECT COUNT(*) FROM attendance where sub_id=? and reg_no=?");
Кроме того, поскольку вы используете один и тот же PreparedStatement
во всем цикле, тогда лучше держать PreparedStatement
вне цикла.Если у вас есть sql statment, который постоянно меняется внутри цикла, то его стоит использовать только в цикле.Если он продолжает меняться, просто используйте Statement
вместо PreparedStatement
, иначе само значение PreparedStatement
будет потеряно при его изменении.