logo

Tutorial Spring JdbcTemplate

  1. Șablon JDBC de primăvară
  2. Înțelegerea necesității șablonului Spring JDBC
  3. Avantajul șablonului Spring JDBC
  4. Clasele șabloane JDBC
  5. Exemplu de clasă JdbcTemplate

Arc JdbcTemplate este un mecanism puternic de conectare la baza de date și de a executa interogări SQL. Utilizează intern API-ul JDBC, dar elimină o mulțime de probleme ale API-ului JDBC.

declarație de caz java

Probleme ale API-ului JDBC

Problemele API-ului JDBC sunt următoarele:

  • Trebuie să scriem mult cod înainte și după executarea interogării, cum ar fi crearea conexiunii, declarației, închiderea setului de rezultate, conexiunea etc.
  • Trebuie să efectuăm cod de tratare a excepțiilor pe logica bazei de date.
  • Trebuie să ne ocupăm de tranzacție.
  • Repetarea tuturor acestor coduri de la unul la altul logica bazei de date este o sarcină consumatoare de timp.

Avantajul Spring JdbcTemplate

Spring JdbcTemplate elimină toate problemele menționate mai sus ale API-ului JDBC. Vă oferă metode de a scrie interogările direct, astfel încât economisiți mult timp și muncă.


Abordări Jdbc de primăvară

Spring framework oferă următoarele abordări pentru accesul la baza de date JDBC:

  • JdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert și SimpleJdbcCall

Clasa JdbcTemplate

Este clasa centrală în clasele de suport Spring JDBC. Se ocupă de crearea și eliberarea resurselor, cum ar fi crearea și închiderea obiectului de conexiune etc. Deci nu va duce la nicio problemă dacă uitați să închideți conexiunea.

Se ocupă de excepție și oferă mesaje informative de excepție cu ajutorul claselor de excepție definite în org.springframework.dao pachet.

Putem efectua toate operațiunile bazei de date cu ajutorul clasei JdbcTemplate precum inserarea, actualizarea, ștergerea și preluarea datelor din baza de date.

Să vedem metodele clasei Spring JdbcTemplate.

Nu.MetodăDescriere
1)public int update (interogare șir)este folosit pentru a introduce, actualiza și șterge înregistrări.
2)public int update (interogare șir, obiect... argumente)este folosit pentru a insera, actualiza și șterge înregistrări folosind PreparedStatement folosind argumentele date.
3)public void execute (interogare șir)este folosit pentru a executa interogarea DDL.
4)public T execute (String sql, acțiune PreparedStatementCallback)execută interogarea utilizând callback PreparedStatement.
5)interogare publică T (String sql, ResultSetExtractor rse)este folosit pentru a prelua înregistrări folosind ResultSetExtractor.
6)interogare public List (String sql, RowMapper rse)este folosit pentru a prelua înregistrări folosind RowMapper.

Exemplu de Spring JdbcTemplate

Presupunem că ați creat următorul tabel în baza de date Oracle10g.

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

Această clasă conține 3 proprietăți cu constructori și setter și gettere.

 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

Conține o proprietate jdbcTemplate și trei metode saveEmployee(), updateEmployee și 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

The DriverManagerDataSource este folosit pentru a conține informații despre baza de date, cum ar fi numele clasei de driver, adresa URL de conectare, numele de utilizator și parola.

Există o proprietate numită sursă de date în clasa JdbcTemplate de tip DriverManagerDataSource. Deci, trebuie să furnizăm referința obiectului DriverManagerDataSource în clasa JdbcTemplate pentru proprietatea sursei de date.

Aici, folosim obiectul JdbcTemplate din clasa EmployeeDao, așa că îl trecem prin metoda setter, dar puteți folosi și constructorul.

 
Test.java

Această clasă primește bean-ul din fișierul applicationContext.xml și apelează metoda saveEmployee(). De asemenea, puteți apela metoda updateEmployee() și deleteEmployee() prin decomentarea codului.

 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);*/ } } 
descărcați acest exemplu (dezvoltat folosind MyEclipse IDE)
descărcați acest exemplu (dezvoltat folosind Eclipse IDE)