Как встать на правильное получение данных с БД?
Можно переписать на Spring JdbcTemplate  
достаточно удобная вещь (и вам на неё будет просто перейти)
(в последней версии можно делать именновонные параметры, вместо "?", что удобно)
SQL можно вынести в файл, но часто удобнее когда они в коде. Смотрите по ситуации.
С точке зрения дальнейшего частого рефакторинга базы, лучше использовать JPA (аля Hibernate),
но там не всегда просто написать нужный запрос.
Pattern называется "Шаблон". Идея в том, чтобы вынести общий код в один класс, тем самым избавив остальных от написания портянок по созданию коннекта к БД и его закрытию. Для универсальности можно определить интерфейс для обработки ResultSet. Тогда все запросы можно будет свести к обращению к классу шаблона с передачей ему тела запроса и обработчика ResultSet.
Примерно может выглядеть так:public class SqlTemplate<T> {

    private String query;
    private Object[] queryParams;

    public SqlTemplate(String query, Object ... queryParams){
          this.query = query;
          this.queryParams = queryParams == null?new Object[0]:queryParams;
    }

   public T select(RsetHandler<T> handler) {
      //тут весь код по созданию коннекта
     ResultSet rs = connect.query(query, queryParams);
     return handler.handle(rs);
     //тут код по обработке ошибок и закрытию коннекта
   }
}
это если нет возможности или желания прикручивать к проекту ORM, а-ля Hibernate