Tutorial Spring JdbcTemplate

  1. Modelo Spring JDBC
  2. Compreendendo a necessidade do modelo Spring JDBC
  3. Vantagem do modelo Spring JDBC
  4. Classes de modelo JDBC
  5. Exemplo de classe JdbcTemplate

Primavera Modelo Jdbc é um mecanismo poderoso para conectar-se ao banco de dados e executar consultas SQL. Ele usa API JDBC internamente, mas elimina muitos problemas da API JDBC.

Problemas da API JDBC

Os problemas da API JDBC são os seguintes:

  • Precisamos escrever muito código antes e depois de executar a consulta, como criar conexão, instrução, fechar conjunto de resultados, conexão etc.
  • Precisamos executar o código de tratamento de exceções na lógica do banco de dados.
  • Precisamos lidar com a transação.
  • A repetição de todos esses códigos de uma lógica de banco de dados para outra é uma tarefa demorada.

Vantagem do Spring JdbcTemplate

Spring JdbcTemplate elimina todos os problemas mencionados acima da API JDBC. Ele fornece métodos para escrever as consultas diretamente, economizando muito trabalho e tempo.


Abordagens Spring Jdbc

A estrutura Spring fornece as seguintes abordagens para acesso ao banco de dados JDBC:

  • Modelo Jdbc
  • NamedParameterJdbcTemplate
  • Modelo SimpleJdbc
  • SimpleJdbcInsert e SimpleJdbcCall

Classe JdbcTemplate

É a classe central nas classes de suporte Spring JDBC. Ele cuida da criação e liberação de recursos como criação e fechamento de objeto de conexão etc. Portanto, não causará nenhum problema se você esquecer de fechar a conexão.

Ele trata a exceção e fornece mensagens informativas de exceção com a ajuda de classes de exceção definidas no org.springframework.dao pacote.

Podemos realizar todas as operações do banco de dados com a ajuda da classe JdbcTemplate, como inserção, atualização, exclusão e recuperação dos dados do banco de dados.

Vamos ver os métodos da classe Spring JdbcTemplate.

Não. Método Descrição
1) atualização int pública (consulta de string) é usado para inserir, atualizar e excluir registros.
2) atualização int pública (consulta de string, objeto... args) é usado para inserir, atualizar e excluir registros usando PreparedStatement usando determinados argumentos.
3) execução pública void (consulta de string) é usado para executar a consulta DDL.
4) public T execute (String sql, ação PreparedStatementCallback) executa a consulta usando o retorno de chamada PreparedStatement.
5) consulta T pública (String sql, ResultSetExtractor rse) é usado para buscar registros usando ResultSetExtractor.
6) consulta de lista pública (String sql, RowMapper rse) é usado para buscar registros usando RowMapper.

Exemplo de Spring JdbcTemplate

Presumimos que você criou a tabela a seguir dentro do banco de dados Oracle10g.

 create table employee( id number(10), name varchar2(100), salary number(10) );  
Funcionário.java

Esta classe contém 3 propriedades com construtores e setter e getters.

 package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters }  
FuncionárioDao.java

Ele contém uma propriedade jdbcTemplate e três métodos saveEmployee(), updateEmployee e deleteEmployee().

 package com.javatpoint; import org.springframework.jdbc.core.JdbcTemplate; public class EmployeeDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public int saveEmployee(Employee e){ String query='insert into employee values( ''+e.getId()+'',''+e.getName()+'',''+e.getSalary()+'')'; return jdbcTemplate.update(query); } public int updateEmployee(Employee e){ String query='update employee set name=''+e.getName()+'',salary=''+e.getSalary()+'' where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } public int deleteEmployee(Employee e){ String query='delete from employee where id=''+e.getId()+'' '; return jdbcTemplate.update(query); } }  
aplicaçãoContext.xml

O DriverManagerDataSource é usado para conter informações sobre o banco de dados, como nome da classe do driver, URL de conexão, nome de usuário e senha.

Há uma propriedade chamada fonte de dados na classe JdbcTemplate do tipo DriverManagerDataSource. Portanto, precisamos fornecer a referência do objeto DriverManagerDataSource na classe JdbcTemplate para a propriedade datasource.

Aqui, estamos usando o objeto JdbcTemplate na classe EmployeeDao, então estamos passando-o pelo método setter, mas você também pode usar o construtor.

  
Teste.java

Esta classe obtém o bean do arquivo applicationContext.xml e chama o método saveEmployee(). Você também pode chamar os métodos updateEmployee() e deleteEmployee() descomentando o código também.

 package com.javatpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext('applicationContext.xml'); EmployeeDao dao=(EmployeeDao)ctx.getBean('edao'); int status=dao.saveEmployee(new Employee(102,'Amit',35000)); System.out.println(status); /*int status=dao.updateEmployee(new Employee(102,'Sonoo',15000)); System.out.println(status); */ /*Employee e=new Employee(); e.setId(102); int status=dao.deleteEmployee(e); System.out.println(status);*/ } }  
baixe este exemplo (desenvolvido usando MyEclipse IDE)
baixe este exemplo (desenvolvido usando Eclipse IDE)