- Jarná šablóna JDBC
- Pochopenie potreby jarnej šablóny JDBC
- Výhoda jarnej JDBC šablóny
- Triedy šablón JDBC
- Príklad triedy JdbcTemplate
Jar JdbcTemplate je výkonný mechanizmus na pripojenie k databáze a vykonávanie SQL dotazov. Interne používa JDBC API, ale odstraňuje veľa problémov JDBC API.
úplná pravdivostná tabuľka sčítačky
Problémy JDBC API
Problémy JDBC API sú nasledovné:
- Musíme napísať veľa kódu pred a po vykonaní dotazu, ako je vytvorenie spojenia, príkaz, zatvorenie sady výsledkov, spojenie atď.
- Musíme vykonať kód spracovania výnimiek v databázovej logike.
- Musíme zvládnuť transakciu.
- Opakovanie všetkých týchto kódov z jednej do druhej databázovej logiky je časovo náročná úloha.
Výhoda Spring JdbcTemplate
Spring JdbcTemplate odstraňuje všetky vyššie uvedené problémy JDBC API. Poskytuje vám metódy na priame písanie dotazov, takže vám ušetrí veľa práce a času.
Jarné prístupy Jdbc
Spring framework poskytuje nasledujúce prístupy pre prístup k databáze JDBC:
- JdbcTemplate
- NamedParameterJdbcTemplate
- SimpleJdbcTemplate
- SimpleJdbcInsert a SimpleJdbcCall
Trieda JdbcTemplate
Je to centrálna trieda v triedach podpory Spring JDBC. Stará sa o vytvorenie a uvoľnenie zdrojov, ako je vytvorenie a zatvorenie objektu spojenia atď. Nespôsobí teda žiadny problém, ak zabudnete spojenie ukončiť.
Spracúva výnimku a poskytuje informatívne správy o výnimkách pomocou tried výnimiek definovaných v org.springframework.dao balík.
Pomocou triedy JdbcTemplate môžeme vykonávať všetky databázové operácie, ako je vkladanie, aktualizácia, mazanie a získavanie údajov z databázy.
Pozrime sa na metódy jarnej triedy JdbcTemplate.
Nie | Metóda | Popis |
---|---|---|
1) | public int update (reťazcový dotaz) | slúži na vkladanie, aktualizáciu a mazanie záznamov. |
2) | public int update(String query,Object... args) | sa používa na vkladanie, aktualizáciu a mazanie záznamov pomocou PreparedStatement s použitím daných argumentov. |
3) | public void spustiť (reťazcový dotaz) | sa používa na vykonanie dotazu DDL. |
4) | public T vykonat(String sql, akcia Spätné volanie Pripravený výpis) | vykoná dotaz pomocou spätného volania PreparedStatement. |
5) | verejný dotaz T (String sql, ResultSetExtractor rse) | sa používa na načítanie záznamov pomocou ResultSetExtractor. |
6) | Dopyt na verejný zoznam (String sql, RowMapper rse) | sa používa na načítanie záznamov pomocou RowMapper. |
Príklad jarnej šablóny JdbcTemplate
Predpokladáme, že ste v databáze Oracle10g vytvorili nasledujúcu tabuľku.
create table employee( id number(10), name varchar2(100), salary number(10) );Zamestnanec.java
Táto trieda obsahuje 3 vlastnosti s konštruktormi a nastavovačmi a getrami.
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
Obsahuje jednu vlastnosť jdbcTemplate a tri metódy saveEmployee(), updateEmployee a 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 sa používa na uloženie informácií o databáze, ako je názov triedy ovládača, adresa URL pripojenia, meno používateľa a heslo.
Existuje vlastnosť pomenovaná Zdroj dát v triede JdbcTemplate typu DriverManagerDataSource. Potrebujeme teda poskytnúť odkaz na objekt DriverManagerDataSource v triede JdbcTemplate pre vlastnosť zdroja údajov.
Tu používame objekt JdbcTemplate v triede EmployeeDao, takže ho odovzdávame metódou setter, ale môžete použiť aj konštruktor.
Test.java
Táto trieda získa bean zo súboru applicationContext.xml a zavolá metódu saveEmployee(). Môžete tiež zavolať metódy updateEmployee() a deleteEmployee() zrušením komentára v kóde.
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);*/ } }stiahnite si tento príklad (vyvinutý pomocou MyEclipse IDE)
stiahnite si tento príklad (vyvinutý pomocou Eclipse IDE)