In java è possibile (quasi sempre...) spostarsi all'interno del recordset (come nell'esempio). Ti dice che devi inizializzare rows perché il valore potrebbe anche non assumerlo (visto che è dentro un blocco try). Ti basta fare
Altrimenti modifichi la query e fai una SELECT COUNT invece di una semplice SELECT. Vedi tu.codice:int rows = 0; try { ...