logo

Vodič za proljeće JdbcTemplate

  1. Proljetni JDBC predložak
  2. Razumijevanje potrebe za Spring JDBC predloškom
  3. Prednost Spring JDBC predloška
  4. Klase JDBC predložaka
  5. Primjer klase JdbcTemplate

Proljeće JdbcTemplate je moćan mehanizam za povezivanje s bazom podataka i izvršavanje SQL upita. Interno koristi JDBC API, ali uklanja mnoge probleme JDBC API-ja.

Problemi JDBC API-ja

Problemi JDBC API-ja su sljedeći:

  • Moramo napisati mnogo koda prije i nakon izvršavanja upita, kao što je stvaranje veze, izjave, zatvaranje skupa rezultata, veza itd.
  • Moramo izvršiti kod za rukovanje iznimkama na logici baze podataka.
  • Moramo izvršiti transakciju.
  • Ponavljanje svih ovih kodova iz jedne u drugu logiku baze podataka dugotrajan je zadatak.

Prednost Spring JdbcTemplate

Spring JdbcTemplate eliminira sve gore navedene probleme JDBC API-ja. Omogućuje vam metode za izravno pisanje upita, tako da štedi mnogo posla i vremena.


Približava se proljeće Jdbc

Spring framework pruža sljedeće pristupe za pristup JDBC bazi podataka:

  • JdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert i SimpleJdbcCall

Klasa JdbcTemplate

To je središnja klasa u Spring JDBC klasama podrške. Brine se o stvaranju i oslobađanju resursa kao što je stvaranje i zatvaranje objekta veze itd. Tako da neće dovesti do problema ako zaboravite zatvoriti vezu.

Obrađuje iznimku i pruža informativne poruke o iznimci uz pomoć klasa iznimke definiranih u org.springframework.dao paket.

Uz pomoć klase JdbcTemplate možemo izvesti sve operacije baze podataka kao što su umetanje, ažuriranje, brisanje i dohvaćanje podataka iz baze podataka.

Pogledajmo metode proljetne klase JdbcTemplate.

Ne.metodaOpis
1)javno int ažuriranje (string upit)koristi se za umetanje, ažuriranje i brisanje zapisa.
2)javno int ažuriranje (upit niza, objekt... argumenti)koristi se za umetanje, ažuriranje i brisanje zapisa pomoću PreparedStatementa koristeći dane argumente.
3)javno poništeno izvršenje (string upit)koristi se za izvršavanje DDL upita.
4)public T execute(String sql, PreparedStatementCallback radnja)izvršava upit pomoću povratnog poziva PreparedStatement.
5)javni T upit (String sql, ResultSetExtractor rse)koristi se za dohvaćanje zapisa pomoću ResultSetExtractor.
6)javni popis upita (string sql, RowMapper rse)koristi se za dohvaćanje zapisa pomoću RowMappera.

Primjer Spring JdbcTemplate

Pretpostavljamo da ste kreirali sljedeću tablicu unutar Oracle10g baze podataka.

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

Ova klasa sadrži 3 svojstva s konstruktorima te postavljačem i dobivačem.

 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

Sadrži jedno svojstvo jdbcTemplate i tri 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 koristi se za sadržavanje informacija o bazi podataka kao što su naziv klase upravljačkog programa, URL veze, korisničko ime i lozinka.

Postoji nekretnina pod nazivom izvor podataka u klasi JdbcTemplate tipa DriverManagerDataSource. Dakle, moramo dati referencu objekta DriverManagerDataSource u klasi JdbcTemplate za svojstvo izvora podataka.

Ovdje koristimo objekt JdbcTemplate u klasi EmployeeDao, pa ga prosljeđujemo metodom postavljača, ali možete koristiti i konstruktor.

 
Test.java

Ova klasa dobiva bean iz datoteke applicationContext.xml i poziva metodu saveEmployee(). Također možete pozvati metodu updateEmployee() i deleteEmployee() uklanjanjem komentara iz koda.

 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);*/ } } 
preuzmite ovaj primjer (razvijen pomoću MyEclipse IDE)
preuzmite ovaj primjer (razvijen korištenjem Eclipse IDE)