logo

Tutoriel Spring JdbcTemplate

  1. Modèle JDBC de printemps
  2. Comprendre la nécessité du modèle Spring JDBC
  3. Avantage du modèle Spring JDBC
  4. Classes de modèles JDBC
  5. Exemple de classe JdbcTemplate

Printemps Modèle Jdbc est un mécanisme puissant pour se connecter à la base de données et exécuter des requêtes SQL. Il utilise en interne l'API JDBC, mais élimine de nombreux problèmes liés à l'API JDBC.

Problèmes de l'API JDBC

Les problèmes de l'API JDBC sont les suivants :

  • Nous devons écrire beaucoup de code avant et après l'exécution de la requête, comme la création d'une connexion, d'une instruction, la fermeture de l'ensemble de résultats, une connexion, etc.
  • Nous devons exécuter du code de gestion des exceptions sur la logique de la base de données.
  • Nous devons gérer la transaction.
  • La répétition de tous ces codes d’une logique de base de données à une autre est une tâche qui prend du temps.

Avantage de Spring JdbcTemplate

Spring JdbcTemplate élimine tous les problèmes mentionnés ci-dessus de l'API JDBC. Il vous fournit des méthodes pour écrire les requêtes directement, ce qui vous permet d'économiser beaucoup de travail et de temps.


Approches Spring Jdbc

Le framework Spring fournit les approches suivantes pour l'accès à la base de données JDBC :

  • Modèle Jdbc
  • NamedParameterJdbcTemplate
  • ModèleJdbcSimple
  • SimpleJdbcInsert et SimpleJdbcCall

Classe JdbcTemplate

Il s'agit de la classe centrale des classes de support Spring JDBC. Il s'occupe de la création et de la libération des ressources telles que la création et la fermeture de l'objet de connexion, etc. Cela ne posera donc aucun problème si vous oubliez de fermer la connexion.

Il gère l'exception et fournit les messages d'exception informatifs à l'aide des classes d'exception définies dans le org.springframework.dao emballer.

Nous pouvons effectuer toutes les opérations de base de données à l'aide de la classe JdbcTemplate telles que l'insertion, la mise à jour, la suppression et la récupération des données de la base de données.

Voyons les méthodes de la classe Spring JdbcTemplate.

Non.MéthodeDescription
1)mise à jour publique int (requête de chaîne)est utilisé pour insérer, mettre à jour et supprimer des enregistrements.
2)mise à jour publique int (requête de chaîne, objet... arguments)est utilisé pour insérer, mettre à jour et supprimer des enregistrements à l'aide de PreparedStatement en utilisant les arguments donnés.
3)public void exécuter (requête de chaîne)est utilisé pour exécuter une requête DDL.
4)public T exécuter (String sql, action PreparedStatementCallback)exécute la requête à l'aide du rappel PreparedStatement.
5)requête publique T (String sql, ResultSetExtractor rse)est utilisé pour récupérer des enregistrements à l'aide de ResultSetExtractor.
6)requête de liste publique (String sql, RowMapper rse)est utilisé pour récupérer des enregistrements à l'aide de RowMapper.

Exemple de Spring JdbcTemplate

Nous supposons que vous avez créé la table suivante dans la base de données Oracle10g.

 create table employee( id number(10), name varchar2(100), salary number(10) ); 
Employé.java

Cette classe contient 3 propriétés avec des constructeurs et des setter et des getters.

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

Il contient une propriété jdbcTemplate et trois méthodes saveEmployee(), updateEmployee et deleteEmployee().

quelle est la taille de mon écran
 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); } } 
applicationContext.xml

Le DriverManagerDataSource est utilisé pour contenir les informations sur la base de données telles que le nom de la classe du pilote, l'URL de connexion, le nom d'utilisateur et le mot de passe.

Il y a une propriété nommée la source de données dans la classe JdbcTemplate de type DriverManagerDataSource. Nous devons donc fournir la référence de l'objet DriverManagerDataSource dans la classe JdbcTemplate pour la propriété datasource.

Ici, nous utilisons l'objet JdbcTemplate dans la classe EmployeeDao, nous le transmettons donc par la méthode setter mais vous pouvez également utiliser le constructeur.

 
Test.java

Cette classe récupère le bean du fichier applicationContext.xml et appelle la méthode saveEmployee(). Vous pouvez également appeler les méthodes updateEmployee() et deleteEmployee() en décommentant également le code.

 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);*/ } } 
téléchargez cet exemple (développé à l'aide de MyEclipse IDE)
téléchargez cet exemple (développé avec Eclipse IDE)