Utlilizar sql ou java?

Estou com dúvidas em relação a performance e padrões de projetos,
Utilizo o iBatis para persistência de dados, incluo minhas Sql direto no xml, é melhor utilizar o sql direto, doque ficar criando métodos e estes acessar os dados. Por exemplo um relatório que acessa várias tabelas capturando os dados, crio métodos que acesse cada função ou tabela, ou com um único método consigo gerar este relatório, apenas utilizando mais Sql como join em tabelas ? oque é aconselhável fazer ?