logo

Spring JdbcTemplate-Tutorial

  1. Spring JDBC-Vorlage
  2. Verständnis der Notwendigkeit einer Spring JDBC-Vorlage
  3. Vorteil der Spring JDBC-Vorlage
  4. JDBC-Vorlagenklassen
  5. Beispiel einer JdbcTemplate-Klasse

Frühling JdbcTemplate ist ein leistungsstarker Mechanismus zum Herstellen einer Verbindung zur Datenbank und zum Ausführen von SQL-Abfragen. Es verwendet intern die JDBC-API, beseitigt jedoch viele Probleme der JDBC-API.

Probleme der JDBC-API

Die Probleme der JDBC-API sind wie folgt:

  • Wir müssen vor und nach der Ausführung der Abfrage viel Code schreiben, z. B. das Erstellen einer Verbindung, einer Anweisung, das Schließen einer Ergebnismenge, einer Verbindung usw.
  • Wir müssen Ausnahmebehandlungscode für die Datenbanklogik ausführen.
  • Wir müssen die Transaktion abwickeln.
  • Die Wiederholung all dieser Codes von einer Datenbanklogik auf eine andere ist eine zeitaufwändige Aufgabe.

Vorteil von Spring JdbcTemplate

Spring JdbcTemplate beseitigt alle oben genannten Probleme der JDBC-API. Es bietet Ihnen Methoden zum direkten Schreiben der Abfragen und spart so viel Arbeit und Zeit.

ungültig 0

Spring JDBC-Ansätze

Das Spring-Framework bietet folgende Ansätze für den JDBC-Datenbankzugriff:

  • JdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert und SimpleJdbcCall

JdbcTemplate-Klasse

Es ist die zentrale Klasse in den Spring JDBC-Unterstützungsklassen. Es kümmert sich um die Erstellung und Freigabe von Ressourcen wie das Erstellen und Schließen von Verbindungsobjekten usw. Es kommt also zu keinem Problem, wenn Sie vergessen, die Verbindung zu schließen.

Es behandelt die Ausnahme und stellt die informativen Ausnahmemeldungen mithilfe der in definierten Ausnahmeklassen bereit org.springframework.dao Paket.

Zeichenfolge der Länge

Mithilfe der JdbcTemplate-Klasse können wir alle Datenbankoperationen ausführen, z. B. das Einfügen, Aktualisieren, Löschen und Abrufen der Daten aus der Datenbank.

Sehen wir uns die Methoden der Spring-JdbcTemplate-Klasse an.

NEIN.MethodeBeschreibung
1)public int update (String-Abfrage)wird zum Einfügen, Aktualisieren und Löschen von Datensätzen verwendet.
2)public int update(String query,Object... args)wird verwendet, um Datensätze mithilfe von PreparedStatement und angegebenen Argumenten einzufügen, zu aktualisieren und zu löschen.
3)public voidexecute(String-Abfrage)wird zum Ausführen einer DDL-Abfrage verwendet.
4)öffentliches T-execute(String sql, PreparedStatementCallback-Aktion)führt die Abfrage mithilfe des PreparedStatement-Rückrufs aus.
5)öffentliche T-Abfrage (String sql, ResultSetExtractor rse)wird zum Abrufen von Datensätzen mit ResultSetExtractor verwendet.
6)öffentliche Listenabfrage (String sql, RowMapper rse)wird zum Abrufen von Datensätzen mit RowMapper verwendet.

Beispiel für Spring JdbcTemplate

Wir gehen davon aus, dass Sie die folgende Tabelle in der Oracle10g-Datenbank erstellt haben.

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

Diese Klasse enthält 3 Eigenschaften mit Konstruktoren sowie Setter und Getter.

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

Es enthält eine Eigenschaft jdbcTemplate und drei Methoden saveEmployee(), updateEmployee und 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); } } 
applicationContext.xml

Der DriverManagerDataSource wird verwendet, um Informationen über die Datenbank wie den Namen der Treiberklasse, die Verbindungs-URL, den Benutzernamen und das Passwort zu enthalten.

Es gibt eine Eigenschaft mit dem Namen Datenquelle in der JdbcTemplate-Klasse vom Typ DriverManagerDataSource. Daher müssen wir die Referenz des DriverManagerDataSource-Objekts in der JdbcTemplate-Klasse für die Datenquelleneigenschaft bereitstellen.

Hier verwenden wir das JdbcTemplate-Objekt in der EmployeeDao-Klasse, also übergeben wir es mit der Setter-Methode, Sie können aber auch den Konstruktor verwenden.

CSS-Listen
 
Test.java

Diese Klasse ruft die Bean aus der Datei applicationContext.xml ab und ruft die Methode saveEmployee() auf. Sie können die Methoden updateEmployee() und deleteEmployee() auch aufrufen, indem Sie den Code ebenfalls auskommentieren.

 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);*/ } } 
Laden Sie dieses Beispiel herunter (entwickelt mit MyEclipse IDE)
Laden Sie dieses Beispiel herunter (entwickelt mit Eclipse IDE)