logo

Spring JdbcTemplate-zelfstudie

  1. Lente JDBC-sjabloon
  2. Inzicht in de noodzaak van een Spring JDBC-sjabloon
  3. Voordeel van Spring JDBC-sjabloon
  4. JDBC-sjabloonklassen
  5. Voorbeeld van de klasse JdbcTemplate

Lente Jdbc-sjabloon is een krachtig mechanisme om verbinding te maken met de database en SQL-query's uit te voeren. Het maakt intern gebruik van JDBC API, maar elimineert veel problemen van de JDBC API.

Problemen met de JDBC-API

De problemen van de JDBC API zijn als volgt:

  • We moeten veel code schrijven voor en na het uitvoeren van de query, zoals het maken van een verbinding, een statement, het sluiten van de resultatenset, de verbinding enz.
  • We moeten uitzonderingsafhandelingscode uitvoeren op de databaselogica.
  • We moeten de transactie afhandelen.
  • Het herhalen van al deze codes van de ene naar de andere databaselogica is een tijdrovende taak.

Voordeel van Spring JdbcTemplate

Spring JdbcTemplate elimineert alle bovengenoemde problemen van de JDBC API. Het biedt u methoden om de query's rechtstreeks te schrijven, waardoor u veel werk en tijd bespaart.


Lente Jdbc-benaderingen

Het Spring-framework biedt de volgende benaderingen voor toegang tot JDBC-databases:

  • Jdbc-sjabloon
  • NamedParameterJdbc-sjabloon
  • SimpleJdbc-sjabloon
  • SimpleJdbcInsert en SimpleJdbcCall

JdbcTemplate-klasse

Het is de centrale klasse in de Spring JDBC-ondersteuningsklassen. Het zorgt voor het maken en vrijgeven van bronnen, zoals het maken en sluiten van verbindingsobjecten enz. Het zal dus niet tot problemen leiden als u vergeet de verbinding te verbreken.

Het verwerkt de uitzonderingen en biedt informatieve uitzonderingsberichten met behulp van uitzonderingsklassen die zijn gedefinieerd in de org.springframework.dao pakket.

We kunnen alle databasebewerkingen uitvoeren met behulp van de klasse JdbcTemplate, zoals het invoegen, bijwerken, verwijderen en ophalen van de gegevens uit de database.

Laten we de methoden van de spring JdbcTemplate-klasse bekijken.

Nee.MethodeBeschrijving
1)public int update (stringquery)wordt gebruikt voor het invoegen, bijwerken en verwijderen van records.
2)public int update(Stringquery,Object... args)wordt gebruikt om records in te voegen, bij te werken en te verwijderen met behulp van PreparedStatement met behulp van gegeven argumenten.
3)public void execute (String-query)wordt gebruikt om de DDL-query uit te voeren.
4)public T execute (String sql, PreparedStatementCallback-actie)voert de query uit met behulp van PreparedStatement callback.
5)openbare T-query (String sql, ResultSetExtractor rse)wordt gebruikt om records op te halen met behulp van ResultSetExtractor.
6)openbare lijstquery (String sql, RowMapper rse)wordt gebruikt om records op te halen met behulp van RowMapper.

Voorbeeld van Spring JdbcTemplate

We gaan ervan uit dat u de volgende tabel in de Oracle10g-database hebt gemaakt.

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

Deze klasse bevat 3 eigenschappen met constructors en setter en getters.

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

Het bevat één eigenschap jdbcTemplate en drie methoden saveEmployee(), updateEmployee en 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

De DriverManagerDataSource wordt gebruikt om de informatie over de database te bevatten, zoals de naam van de stuurprogrammaklasse, de verbindings-URL, de gebruikersnaam en het wachtwoord.

Er is een eigendom genaamd databron in de klasse JdbcTemplate van het type DriverManagerDataSource. We moeten dus de referentie van het DriverManagerDataSource-object opgeven in de klasse JdbcTemplate voor de eigenschap datasource.

Hier gebruiken we het JdbcTemplate-object in de klasse EmployeeDao, dus we geven het door via de setter-methode, maar je kunt ook een constructor gebruiken.

 
Test.java

Deze klasse haalt de bean op uit het bestand applicationContext.xml en roept de methode saveEmployee() aan. U kunt ook de methoden updateEmployee() en deleteEmployee() aanroepen door ook het commentaar op de code te verwijderen.

 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);*/ } } 
download dit voorbeeld (ontwikkeld met MyEclipse IDE)
download dit voorbeeld (ontwikkeld met Eclipse IDE)