Usando JdbcTemplate para consultas SQL com Spring

Postado por em   ●   22 comentários

Precisa executar consultas SQL em sua aplicação Spring de maneira fácil?

O Spring Framework tem uma classe que nos ajuda muito quanto a isso, que é a classe JdbcTemplate. O legal é que, nessa aula, você vai ver o quanto é fácil usá-la.

No final você vai aprender sobre:

  • Quais as dependências mínimas necessárias para realizar consultas com Spring
  • Como configurar um data source
  • Criar um repositório para executar consultas SQL com JdbcTemplate

Vamos lá?

O e-book que cito na aula é esse aqui:

Ebook Spring Boot

Abraço pra você e até uma próxima!

PS: Você pode baixar o código-fonte de exemplo em nosso GitHub: http://github.com/algaworks/videoaula-spring-jdbctemplate

É graduado em Sistemas de Informação, trabalha como instrutor na AlgaWorks e está no mercado de programação Java há mais de 9 anos, principalmente no desenvolvimento de sistemas corporativos.

22 comentários sobre “Usando JdbcTemplate para consultas SQL com Spring

  1. Daniel Arrais -

    Que negócio iraaaaaaaadooooooo!!! parabéns pela aula!!!

    1. Alexandre Afonso Autor do post-

      Opa! :)

      Valeu Daniel!

      Abraço!

  2. Deusyvan -

    Excelente aula!
    Isso mesmo gostaria de um exemplo se é possível utilizar dois dataSource na mesma aplicação.

    1. Alexandre Afonso Autor do post-

      Valeu Deusyvan!

      Olha, a gente AINDA não tem uma exemplo de como fazer isso, mas eu tenho um artigo aqui que pode te ajudar. É esse: https://www.infoq.com/articles/Multiple-Databases-with-Spring-Boot

      Nele é feita essa configuração para dois bancos. Basicamente, você precisa de 2 datasources e, para cada datasource, você cria métodos anotados com “@Bean” com qualificações. Quando digo “qualificações”, me refiro a propriedade “name” da anotação “@Bean” ou da própria anotação “@Qualifier”. No artigo você vai entender melhor isso.

      Abraço!

  3. Alex Leporoni -

    Ótima aula Alexandre!!! Uma pergunta: existe alguma diferença entre eu usar o Eclipse Oxygen com o STS instalado pelo MarketPlace e o Spring Tool Suite que vc usou? Tenho os dois aqui mas prefiro usar o Oxygen.
    Obrigado.

    1. Alexandre Afonso Autor do post-

      Valeu Alex!

      Quando a tecnologia tem uma IDE específica, eu sou a favor de usar. O STS nesse caso seria a IDE para quem usa as tecnologias do ecossistema Spring. Mas, eu mesmo nunca encontrei diferença entre o STS e o Eclipse com o plugin do STS.

      Abraço!

  4. João Kiakumbo -

    Parabéns pela aula!

    Mais fiquei com dificulade de entender como se pode fazer estas consulta quando usamos um construtor padrão vendo que nestas consultas sempre era necessario criar um novo objecto Usuario?

    1. Alexandre Afonso Autor do post-

      Valeu João!

      Basta usar as chaves na lambda “{}” e, ao invés de usar o construtor, você usa os getters e setters.

      Abraço!

  5. Carlos Anders -

    Parabéns, excelente aula… Gostaria de saber se você tem um exemplo da classe DbConfig com o bd Oracle?

    1. Alexandre Afonso Autor do post-

      Valeu Carlos!

      Não temos o exemplo que pediu, mas vamos pontuar esse tema aqui para levar em consideração nos próximos conteúdos. :)

      Abraço!

  6. Felipe -

    Ótimo conteúdo.

    Só não sei como seria com vários filtros, como um relatório por exemplo, pois no dia a dia é bem utilizado.

    1. Alexandre Afonso Autor do post-

      Valeu Felipe!

      É só passar os filtros no array de objetos (como foi com o ID). Lá você pode passar quantos parâmetros o SQL precisar.

      Abraço!

  7. Rhadamez -

    Top essa aula, Alexandre!

    Uma das minhas sugestões/dúvidas, seria implementar um dataSource que apontasse pra algum schema na database através de algum parâmetro (dado pelo usuário, digamos assim), imaginemos um app multitenancy com este formato.

    Abraço!

    1. Alexandre Afonso Autor do post-

      Obrigado Rhadamez!

      Valeu pela sugestão, e abraço!

  8. william -

    Gostei muito. Tem algum exemplo pra mysql professor?

  9. Ricardo Antonio -

    Boa Alexandre!

    Gostaria de saber se seria possível vcs criarem um tutorial de como utilizar Multi-Tenacy com DATABASE strategy com Spring Boot?

    Grato!

    1. Alexandre Afonso Autor do post-

      Valeu Ricardo!

      Vou anotar sua sugestão. :)

      Inclusive, é uma bem pedida. Acredito que em breve teremos algo nesse sentido.

      Abraço!

  10. Fabio -

    Muito legal!

    Tenho interesse de ver o datasource com outro banco e com duas tabelas reacionadas.
    Ex. Usuario, DetalheUsuario

  11. Fabrício Lima -

    Alexandre
    Boa noite
    Estou estudando o JdbcTemplate, mas ainda não encontrei um recurso para o que eu preciso.
    O meu cenário é: Tenho que gerar um arquivo texto, com base em informações vendas de duas consultas, feitas em JdbcTemplete, consulta de cabeçalho e itens do pedido, só que, não quero depender de uma classe bean.
    O arquivo irá contar cabeçalho do pedido, e em seguida seus itens, sucessivamente.
    Eu carrego as duas consultas, a medida que percorro registros do cabeçalho quero filtrar seus itens, usando stream de list.
    Estou tentado fazer algo genérico, mas estou apanhando :)

    Se puder ajudar…
    Desde já muito obrigado

    1. Alexandre Afonso Autor do post-

      Fabrício, bom dia!

      Infelizmente, não tenho como dar um dica prática, pois, sua questão é bem ampla.

      Mas você já domina as duas técnicas separadamente? Ou seja, você já consegue fazer uma consulta no banco de dados e você já consegue escrever um texto qualquer em um arquivo?

      Não tente fazer os dois ao mesmo tempo. Primeiro garanta que já conhece as técnicas separadamente. Senão os erros vão se acumulando e fica mais difícil resolver problemas.

      Claro, quando tiver tranquilidade com cada técnica, você junta tudo.

      Abraço!

Deixe um comentário