logo

Kevään JdbcTemplate opetusohjelma

  1. Kevään JDBC-malli
  2. Kevään JDBC-mallin tarpeen ymmärtäminen
  3. Kevään JDBC-mallin etu
  4. JDBC Template -luokat
  5. Esimerkki JdbcTemplate-luokasta

kevät JdbcMalli on tehokas mekanismi yhteyden muodostamiseen tietokantaan ja SQL-kyselyjen suorittamiseen. Se käyttää sisäisesti JDBC-sovellusliittymää, mutta poistaa monet JDBC API:n ongelmat.

JDBC API:n ongelmat

JDBC API:n ongelmat ovat seuraavat:

  • Meidän on kirjoitettava paljon koodia ennen kyselyn suorittamista ja sen jälkeen, kuten yhteyden luominen, lauseke, tulosjoukon sulkeminen, yhteys jne.
  • Meidän on suoritettava poikkeusten käsittelykoodi tietokantalogiikassa.
  • Meidän on hoidettava kaupat.
  • Kaikkien näiden koodien toistaminen tietokantalogiikasta toiseen on aikaa vievä tehtävä.

Spring JdbcTemplaten etu

Spring JdbcTemplate poistaa kaikki yllä mainitut JDBC API:n ongelmat. Se tarjoaa menetelmiä kirjoittaa kyselyt suoraan, joten se säästää paljon työtä ja aikaa.


Kevät Jdbc lähestyy

Spring Framework tarjoaa seuraavat lähestymistavat JDBC-tietokannan käyttöön:

  • JdbcMalli
  • NimettyParameterJdbcTemplate
  • YksinkertainenJdbcMalli
  • SimpleJdbcInsert ja SimpleJdbcCall

JdbcTemplate-luokka

Se on keskeinen luokka kevään JDBC-tukiluokissa. Se huolehtii resurssien luomisesta ja vapauttamisesta, kuten yhteysobjektin luomisesta ja sulkemisesta jne. Joten se ei aiheuta ongelmia, jos unohdat sulkea yhteyden.

Se käsittelee poikkeuksen ja tarjoaa informatiiviset poikkeussanomat kohdassa määriteltyjen poikkeusluokkien avulla org.springframework.dao paketti.

Voimme suorittaa kaikki tietokantatoiminnot JdbcTemplate-luokan avulla, kuten lisääminen, päivitys, poistaminen ja tietojen hakeminen tietokannasta.

Katsotaanpa kevään JdbcTemplate-luokan metodit.

Ei.MenetelmäKuvaus
1)julkinen int-päivitys (merkkijonokysely)käytetään tietueiden lisäämiseen, päivittämiseen ja poistamiseen.
2)julkinen int-päivitys (merkkijonokysely, objekti... args)käytetään tietueiden lisäämiseen, päivittämiseen ja poistamiseen käyttämällä PreparedStatementia annettuja argumentteja käyttäen.
3)public void execute (merkkijonokysely)käytetään DDL-kyselyn suorittamiseen.
4)julkinen T execute (merkkijono sql, PreparedStatementCallback-toiminto)suorittaa kyselyn käyttämällä PreparedStatementin takaisinsoittoa.
5)julkinen T-kysely (String sql, ResultSetExtractor rse)käytetään tietueiden hakemiseen ResultSetExtractorilla.
6)julkinen luettelokysely (String sql, RowMapper rse)käytetään tietueiden hakemiseen RowMapperilla.

Esimerkki Spring JdbcTemplatesta

Oletamme, että olet luonut seuraavan taulukon Oracle10g-tietokannassa.

 create table employee( id number(10), name varchar2(100), salary number(10) ); 
Työntekijä.java

Tämä luokka sisältää 3 ominaisuutta, joissa on konstruktorit ja setterit ja getterit.

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

Se sisältää yhden ominaisuuden jdbcTemplate ja kolme menetelmää saveEmployee(), updateEmployee ja 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 käytetään sisältämään tietokannan tiedot, kuten ajuriluokan nimen, yhteyden URL-osoitteen, käyttäjätunnuksen ja salasanan.

Siellä on kiinteistö nimeltä tietolähde DriverManagerDataSource-tyypin JdbcTemplate-luokassa. Joten meidän on annettava DriverManagerDataSource-objektin viittaus JdbcTemplate-luokassa tietolähdeominaisuutta varten.

Tässä käytämme JdbcTemplate-objektia EmployeeDao-luokassa, joten välitämme sen setter-metodilla, mutta voit käyttää myös konstruktoria.

 
Test.java

Tämä luokka saa papun applicationContext.xml-tiedostosta ja kutsuu saveEmployee()-metodia. Voit myös kutsua updateEmployee()- ja deleteEmployee()-metodeja poistamalla myös koodin kommentit.

 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);*/ } } 
lataa tämä esimerkki (kehitetty MyEclipse IDE:llä)
lataa tämä esimerkki (kehitetty Eclipse IDE:llä)