Quitar repetitivo de código db

Parece que cada vez que quiero realizar una consulta de db, tengo que escribir lo siguiente:

Connection conn = null;
Statement stmt = null;
ResultSet rset = null;

try {
    conn = dataSource.getConnection();
    stmt = conn.prepareStatement(sql);
    // ...set stmt params
    rset = stmt.executeQuery();
    while(rset.next()) {
        // Do something interesting
    }
} finally {
    try { if (rset != null) rset.close(); } catch(SQLException e) { }
    try { if (stmt != null) stmt.close(); } catch(SQLException e) { }
    try { if (conn != null) conn.close(); } catch(SQLException e) { }
}

¿Es esta realmente la mejor manera de hacer esto? ¿Hay alguna manera de al menos reducir algo del desorden?

Editado: como algunos de los comentarios señalaron, este código no fue largosuficiente.

Respuestas a la pregunta(5)

Su respuesta a la pregunta