logo

Pavasara JdbcTemplate apmācība

  1. Pavasara JDBC veidne
  2. Izpratne par pavasara JDBC veidnes nepieciešamību
  3. Pavasara JDBC veidnes priekšrocība
  4. JDBC veidņu nodarbības
  5. JdbcTemplate klases piemērs

Pavasaris JdbcTemplate ir spēcīgs mehānisms, lai izveidotu savienojumu ar datu bāzi un izpildītu SQL vaicājumus. Tas iekšēji izmanto JDBC api, taču novērš daudzas JDBC API problēmas.

JDBC API problēmas

JDBC API problēmas ir šādas:

  • Mums ir jāraksta daudz koda pirms un pēc vaicājuma izpildes, piemēram, izveidojot savienojumu, paziņojumu, aizvērt rezultātu kopu, savienojumu utt.
  • Mums datu bāzes loģikā ir jāveic izņēmumu apstrādes kods.
  • Mums ir jākārto darījums.
  • Visu šo kodu atkārtošana no vienas datu bāzes loģikas ir laikietilpīgs uzdevums.

Pavasara JdbcTemplate priekšrocība

Pavasara JdbcTemplate novērš visas iepriekš minētās JDBC API problēmas. Tas nodrošina metodes, kā tieši rakstīt vaicājumus, tādējādi ietaupot daudz darba un laika.


Pavasara Jdbc pieejas

Pavasara ietvars nodrošina šādas pieejas JDBC datubāzei:

  • JdbcTemplate
  • NosauktsParameterJdbcTemplate
  • VienkāršaJdbcTemplate
  • SimpleJdbcInsert un SimpleJdbcCall

JdbcTemplate klase

Tā ir centrālā klase pavasara JDBC atbalsta klasēs. Tas rūpējas par resursu izveidi un atbrīvošanu, piemēram, savienojuma objekta izveidi un aizvēršanu utt. Tāpēc tas neradīs nekādas problēmas, ja aizmirsīsit aizvērt savienojumu.

Tas apstrādā izņēmumu un nodrošina informatīvos izņēmuma ziņojumus, izmantojot izņēmuma klases, kas definētas org.springframework.dao iepakojums.

Ar JdbcTemplate klases palīdzību mēs varam veikt visas datu bāzes darbības, piemēram, datu ievietošanu, atjaunināšanu, dzēšanu un izgūšanu no datu bāzes.

Apskatīsim pavasara JdbcTemplate klases metodes.

Nē.MetodeApraksts
1)publisks int atjauninājums (virknes vaicājums)tiek izmantots, lai ievietotu, atjauninātu un dzēstu ierakstus.
2)publisks int atjauninājums (virknes vaicājums, objekts... args)tiek izmantots, lai ievietotu, atjauninātu un dzēstu ierakstus, izmantojot PreparedStatement, izmantojot dotos argumentus.
3)public Void execute (virknes vaicājums)tiek izmantots, lai izpildītu DDL vaicājumu.
4)publiska T izpilde (virkne sql, PreparedStatementCallback darbība)izpilda vaicājumu, izmantojot PreparedStatement atzvanīšanu.
5)publiskais T vaicājums (virkne sql, ResultSetExtractor rse)tiek izmantots, lai ielādētu ierakstus, izmantojot ResultSetExtractor.
6)publisks saraksta vaicājums (String sql, RowMapper rse)tiek izmantots, lai ielādētu ierakstus, izmantojot RowMapper.

Pavasara JdbcTemplate piemērs

Mēs pieņemam, ka esat izveidojis šādu tabulu Oracle10g datubāzē.

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

Šajā klasē ir 3 rekvizīti ar konstruktoriem un iestatītājiem un geteriem.

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

Tajā ir viens rekvizīts jdbcTemplate un trīs metodes saveEmployee(), updateEmployee un 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 tiek izmantots, lai saturētu informāciju par datu bāzi, piemēram, draivera klases nosaukumu, savienojuma URL, lietotājvārdu un paroli.

Ir īpašums ar nosaukumu datu avots tipa DriverManagerDataSource klasē JdbcTemplate. Tātad datu avota rekvizītam klasē JdbcTemplate ir jānorāda atsauce uz objektu DriverManagerDataSource.

Šeit mēs izmantojam JdbcTemplate objektu EmployeeDao klasē, tāpēc mēs to nododam ar setter metodi, bet jūs varat izmantot arī konstruktoru.

 
Test.java

Šī klase iegūst pupiņu no faila applicationContext.xml un izsauc metodi saveEmployee(). Varat arī izsaukt metodi updateEmployee() un deleteEmployee(), atņemot arī kodu komentārus.

 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);*/ } } 
lejupielādēt šo piemēru (izstrādāts, izmantojot MyEclipse IDE)
lejupielādēt šo piemēru (izstrādāts, izmantojot Eclipse IDE)