其实主要看你是使用什么连接的数据库,如果没有用连接池的话,那么就不需要,因为当你关闭Connection( conn.close)时GC会帮你关闭ResultSet 和Statement ;
但是当你使用连接池的时候就会出现异常,因为关闭Connection并不是物理关闭,而是归还连接池,那么不关闭ResultSet 和PrepareedStatement 他们就会一直存在,并且占用数据库的游标资源,长期运行的话就会报游标超出数据库允许的最大值的错误,导致无法正常访问数据库;
所以最好来说,不论是用什么方法连接数据库都建议关闭;