logo

Pomladna vadnica JdbcTemplate

  1. Pomladna predloga JDBC
  2. Razumevanje potrebe po predlogi Spring JDBC
  3. Prednost predloge Spring JDBC
  4. Razredi predlog JDBC
  5. Primer razreda JdbcTemplate

Pomlad JdbcTemplate je močan mehanizem za povezovanje z bazo podatkov in izvajanje poizvedb SQL. Interno uporablja JDBC API, vendar odpravlja veliko težav JDBC API.

Težave JDBC API

Težave API-ja JDBC so naslednje:

  • Pred in po izvedbi poizvedbe moramo napisati veliko kode, na primer ustvarjanje povezave, izjave, zapiranje nabora rezultatov, povezava itd.
  • Izvesti moramo kodo za obravnavanje izjem v logiki baze podatkov.
  • Ukvarjati se moramo s transakcijo.
  • Ponavljanje vseh teh kod iz ene v drugo logiko baze podatkov je zamudno opravilo.

Prednost Spring JdbcTemplate

Spring JdbcTemplate odpravlja vse zgoraj omenjene težave API-ja JDBC. Ponuja metode za neposredno pisanje poizvedb, tako da prihrani veliko dela in časa.


Približuje se pomlad Jdbc

Spring framework ponuja naslednje pristope za dostop do baze podatkov JDBC:

  • JdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcTemplate
  • SimpleJdbcInsert in SimpleJdbcCall

Razred JdbcTemplate

Je osrednji razred v podpornih razredih Spring JDBC. Skrbi za ustvarjanje in sprostitev virov, kot je ustvarjanje in zapiranje predmeta povezave itd. Tako ne bo povzročilo težav, če pozabite zapreti povezavo.

Obravnava izjemo in zagotavlja informativna sporočila o izjemi s pomočjo razredov izjem, definiranih v org.springframework.dao paket.

S pomočjo razreda JdbcTemplate lahko izvedemo vse operacije baze podatkov, kot so vstavljanje, posodabljanje, brisanje in pridobivanje podatkov iz baze.

Oglejmo si metode vzmetnega razreda JdbcTemplate.

št.MetodaOpis
1)posodobitev javnega int (poizvedba niza)se uporablja za vstavljanje, posodabljanje in brisanje zapisov.
2)public int update(String query,Object... args)se uporablja za vstavljanje, posodabljanje in brisanje zapisov z uporabo PreparedStatement z danimi argumenti.
3)javna void izvedba (poizvedba niza)se uporablja za izvedbo poizvedbe DDL.
4)public T execute(String sql, PreparedStatementCallback action)izvede poizvedbo z uporabo povratnega klica PreparedStatement.
5)javna poizvedba T (String sql, ResultSetExtractor rse)se uporablja za pridobivanje zapisov z uporabo ResultSetExtractor.
6)poizvedba javnega seznama (String sql, RowMapper rse)se uporablja za pridobivanje zapisov z uporabo RowMapper.

Primer Spring JdbcTemplate

Predvidevamo, da ste ustvarili naslednjo tabelo v bazi podatkov Oracle10g.

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

Ta razred vsebuje 3 lastnosti s konstruktorji ter nastavilci in pridobivalci.

 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

Vsebuje eno lastnost jdbcTemplate in tri metode saveEmployee(), updateEmployee in 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 se uporablja za shranjevanje informacij o bazi podatkov, kot so ime razreda gonilnika, URL povezave, uporabniško ime in geslo.

Obstaja lastnost z imenom vir podatkov v razredu JdbcTemplate tipa DriverManagerDataSource. Zato moramo zagotoviti referenco objekta DriverManagerDataSource v razredu JdbcTemplate za lastnost vira podatkov.

Tukaj uporabljamo objekt JdbcTemplate v razredu EmployeeDao, zato ga posredujemo z metodo nastavitev, vendar lahko uporabite tudi konstruktor.

 
Test.java

Ta razred pridobi gradnik iz datoteke applicationContext.xml in pokliče metodo saveEmployee(). Prav tako lahko pokličete metodo updateEmployee() in deleteEmployee(), tako da odkomentirate kodo.

 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);*/ } } 
prenesite ta primer (razvit z uporabo MyEclipse IDE)
prenesite ta primer (razvit z uporabo Eclipse IDE)