- Modello JDBC primaverile
- Comprendere la necessità del modello JDBC primaverile
- Vantaggio del modello JDBC primaverile
- Classi del modello JDBC
- Esempio di classe JdbcTemplate
Primavera Modello Jdbc è un potente meccanismo per connettersi al database ed eseguire query SQL. Utilizza internamente l'API JDBC, ma elimina molti problemi dell'API JDBC.
Problemi dell'API JDBC
I problemi dell'API JDBC sono i seguenti:
bash ciclo while
- Dobbiamo scrivere molto codice prima e dopo l'esecuzione della query, come la creazione di una connessione, un'istruzione, la chiusura del set di risultati, la connessione ecc.
- Dobbiamo eseguire il codice di gestione delle eccezioni sulla logica del database.
- Dobbiamo gestire la transazione.
- La ripetizione di tutti questi codici dall'uno all'altro della logica del database è un'attività che richiede tempo.
Vantaggio di Spring JdbcTemplate
Spring JdbcTemplate elimina tutti i problemi sopra menzionati dell'API JDBC. Fornisce metodi per scrivere direttamente le query, quindi consente di risparmiare molto lavoro e tempo.
Si avvicina la primavera Jdbc
Il framework Spring fornisce i seguenti approcci per l'accesso al database JDBC:
- Modello Jdbc
- Modello Jdbc con parametro denominato
- Modello Jdbc semplice
- SimpleJdbcInsert e SimpleJdbcCall
Classe JdbcTemplate
È la classe centrale nelle classi di supporto Spring JDBC. Si occupa della creazione e del rilascio di risorse come la creazione e la chiusura dell'oggetto di connessione, ecc. Quindi non causerà alcun problema se si dimentica di chiudere la connessione.
Gestisce l'eccezione e fornisce messaggi informativi sull'eccezione con l'aiuto delle classi di eccezione definite nel file org.springframework.dao pacchetto.
Possiamo eseguire tutte le operazioni del database con l'aiuto della classe JdbcTemplate come inserimento, aggiornamento, cancellazione e recupero dei dati dal database.
Vediamo i metodi della classe spring JdbcTemplate.
NO. | Metodo | Descrizione |
---|---|---|
1) | public int aggiornamento (query String) | viene utilizzato per inserire, aggiornare ed eliminare record. |
2) | public int update(String query,Object... args) | viene utilizzato per inserire, aggiornare ed eliminare record utilizzando PreparedStatement utilizzando determinati argomenti. |
3) | esecuzione public void (query di stringhe) | viene utilizzato per eseguire la query DDL. |
4) | esecuzione T pubblica (String sql, azione PreparedStatementCallback) | esegue la query utilizzando il callback PreparedStatement. |
5) | query T pubblica (String sql, ResultSetExtractor rse) | viene utilizzato per recuperare i record utilizzando ResultSetExtractor. |
6) | query sull'elenco pubblico (String sql, RowMapper rse) | viene utilizzato per recuperare i record utilizzando RowMapper. |
Esempio di JdbcTemplate primaverile
Supponiamo che tu abbia creato la seguente tabella all'interno del database Oracle10g.
ls comanda Linux
create table employee( id number(10), name varchar2(100), salary number(10) );Dipendente.java
Questa classe contiene 3 proprietà con costruttori, setter e getter.
package com.javatpoint; public class Employee { private int id; private String name; private float salary; //no-arg and parameterized constructors //getters and setters }DipendenteDao.java
Contiene una proprietà jdbcTemplate e tre metodi saveEmployee(), updateEmployee e 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
IL DriverManagerDataSource viene utilizzato per contenere le informazioni sul database come il nome della classe del driver, l'URL di connessione, il nome utente e la password.
C'è una proprietà denominata fonte di dati nella classe JdbcTemplate di tipo DriverManagerDataSource. Pertanto, dobbiamo fornire il riferimento dell'oggetto DriverManagerDataSource nella classe JdbcTemplate per la proprietà datasource.
Qui stiamo utilizzando l'oggetto JdbcTemplate nella classe EmployeeDao, quindi lo passiamo tramite il metodo setter ma puoi anche utilizzare il costruttore.
Prova.java
Questa classe ottiene il bean dal file applicationContext.xml e chiama il metodo saveEmployee(). Puoi anche chiamare il metodo updateEmployee() e deleteEmployee() rimuovendo il commento dal codice.
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);*/ } }scarica questo esempio (sviluppato utilizzando MyEclipse IDE)
scarica questo esempio (sviluppato utilizzando Eclipse IDE)