Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados, qual seria a melhor maneira de se escrever uma grande query SQL dentro do código Java sem ter de ficarmos abrindo e fechando aspas concatenando os pedaços da query? Exemplo:
// monta query
String sql = "SELECT "
+ " c.cvCodCdc, "
+ " c.ccNomCdc "
+ "FROM "
+ " tblCdc c "
+ " LEFT JOIN ( "
+ " SELECT "
+ " f.cvCodCdc "
+ " FROM "
+ " tblFuncionario f "
+ " WHERE "
+ " f.cdDatRes IS NULL "
+ " GROUP BY "
+ " f.cvCodCdc "
+ " ) z ON "
+ " c.cvCodCdc = z.cvCodCdc "
+ "WHERE "
+ " z.cvCodCdc IS NOT NULL "
+ "ORDER BY "
+ " c.ccNomCdc";
... como podem ver no código acima, só não vale dizer que a resposta é assim: "SELECT c.cvCodCdc, c.ccNomCdc FROM tblCdc c LEFT JOIN ( ....". O interessante é manter as quebras de linha da query para não dificultar a leitura, ao mesmo tempo evitar as várias aspas e concatenações do código Java.
Se você não estiver utilizando um framework ORM, não podendo assim utilizar Criteria, recomendo que separe o SQL do código Java. Crie um arquivo SQL e ponha sua query nele. Cria-se o arquivo SQL dentro do projeto com a query e depois lê o arquivo do seu código Java jogando seu conteúdo numa String.
No código Java.
// ..
private String recuperaSql(String arquivo) {
// ...
// ...
A documentação da biblioteca utilizada para leitura do arquivo SQL pode ser consultada em http://commons.apache.org/proper/commons-io/apidocs/ , porém nem é necessário dizer que tu podes ler o arquivo de qualquer outra maneira que quiser.