Integer is a better option, as it can handle null; for int, null would become 0, silently, if resultSet.getInt(..) is used. Otherwise, it might throw some exception, something like, “Unable to set null to a primitive property”.
Performance is of little concern here.
- if you choose
int, you will end-up adding extra handling code; and that wouldn’t benefit you much. Your code will not be clean and straight-forward, lot of boiler-plate code, and you wouldn’t even gain performance. - let me make it clear, for databases, null is not same as zero. Sometimes you end-up entering
0, wherenullwas intended. Imagine the case where user submitted a form, and doesn’t supply any value forint. You will end up getting0by default. It makes sense, or does that really, when that field isnot nullin the database.