- Tavaszi JDBC sablon
- A tavaszi JDBC sablon szükségességének megértése
- A tavaszi JDBC sablon előnyei
- JDBC sablon osztályok
- Példa a JdbcTemplate osztályra
Tavaszi JdbcSablon egy hatékony mechanizmus az adatbázishoz való csatlakozáshoz és az SQL-lekérdezések végrehajtásához. Belsőleg JDBC API-t használ, de kiküszöböli a JDBC API sok problémáját.
A JDBC API problémái
A JDBC API problémái a következők:
- Sok kódot kell írnunk a lekérdezés végrehajtása előtt és után, például kapcsolat létrehozása, utasítás, eredményhalmaz lezárása, kapcsolat stb.
- Kivételkezelő kódot kell végrehajtanunk az adatbázis-logikán.
- Le kell intéznünk a tranzakciót.
- Mindezen kódok ismétlése egyik adatbázis-logikáról a másikra időigényes feladat.
A tavaszi JdbcTemplate előnyei
A tavaszi JdbcTemplate kiküszöböli a JDBC API fent említett összes problémáját. Módszereket biztosít a lekérdezések közvetlen írásához, így sok munkát és időt takarít meg.
konvertáljon egy karakterláncot dátummá
Tavaszi Jdbc megközelítések
A tavaszi keretrendszer a következő megközelítéseket kínálja a JDBC adatbázis-hozzáféréshez:
- JdbcSablon
- NamedParameterJdbcTemplate
- SimpleJdbcSablon
- SimpleJdbcInsert és SimpleJdbcCall
JdbcTemplate osztály
Ez a központi osztály a tavaszi JDBC támogatási osztályokban. Gondoskodik az erőforrások létrehozásáról és felszabadításáról, például a kapcsolódási objektum létrehozásáról és bezárásáról stb. Így nem okoz problémát, ha elfelejti bezárni a kapcsolatot.
Kezeli a kivételt és biztosítja a tájékoztató jellegű kivételüzeneteket a -ban definiált kivételosztályok segítségével org.springframework.dao csomag.
szöveg méretű latex
A JdbcTemplate osztály segítségével az összes adatbázis-műveletet elvégezhetjük, mint például az adatok beillesztése, frissítése, törlése és visszakeresése az adatbázisból.
Lássuk a tavaszi JdbcTemplate osztály metódusait.
Nem. | Módszer | Leírás |
---|---|---|
1) | nyilvános int frissítés (karakterlánc lekérdezés) | rekordok beszúrására, frissítésére és törlésére szolgál. |
2) | nyilvános int frissítés (String query, Object... args) | rekordok beszúrására, frissítésére és törlésére szolgál a PreparedStatement használatával, megadott argumentumok használatával. |
3) | public void execute (karakterlánc lekérdezés) | DDL lekérdezés végrehajtására szolgál. |
4) | public T execute (String sql, PreparedStatementCallback művelet) | végrehajtja a lekérdezést a PreparedStatement visszahívás használatával. |
5) | nyilvános T lekérdezés (String sql, ResultSetExtractor rse) | a ResultSetExtractor segítségével rekordok lekérésére szolgál. |
6) | nyilvános listalekérdezés (String sql, RowMapper rse) | rekordok lekérésére szolgál a RowMapper használatával. |
Példa a tavaszi JdbcTemplate-re
Feltételezzük, hogy az alábbi táblázatot az Oracle10g adatbázisban hozta létre.
create table employee( id number(10), name varchar2(100), salary number(10) );Munkavállaló.java
Ez az osztály 3 tulajdonságot tartalmaz konstruktorokkal, setterekkel és getterekkel.
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
Egy jdbcTemplate tulajdonságot és három módszert tartalmaz: saveEmployee(), updateEmployee és 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
A DriverManagerDataSource az adatbázissal kapcsolatos információk tárolására szolgál, mint például az illesztőprogram-osztály neve, a csatlakozási URL, a felhasználónév és a jelszó.
nevű ingatlan található adatforrás a DriverManagerDataSource típusú JdbcTemplate osztályban. Tehát meg kell adnunk a DriverManagerDataSource objektum hivatkozását a JdbcTemplate osztályban az adatforrás tulajdonsághoz.
Itt a JdbcTemplate objektumot használjuk az EmployeeDao osztályban, tehát a setter metódussal adjuk át, de használhatjuk a konstruktort is.
normál formák
Test.java
Ez az osztály lekéri a komponenst az applicationContext.xml fájlból, és meghívja a saveEmployee() metódust. Meghívhatja az updateEmployee() és deleteEmployee() metódust is a kód megjegyzéseinek törlésével.
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);*/ } }töltse le ezt a példát (MyEclipse IDE használatával fejlesztették)
töltse le ezt a példát (Eclipse IDE segítségével fejlesztették)