Com accedir a la base de dades utilitzant la plantilla de Primavera JDBC?

Spring JDBC template

plantilla de la primavera JDBC

Visió de conjunt: Com tots sabem que el marc de la primavera s'ha convertit en una part essencial de la moderna desenvolupament d'aplicacions basades en Java. El marc de la primavera ha aconseguit eficaçment a prendre el control de tots els departaments en el món del desenvolupament de Java. La plantilla de la primavera JDBC s'utilitza en la major part del moll d'aplicacions JEE base per a comunicar-se amb la base de dades.

En aquest article vaig a parlar sobre com accedir a una base de dades relacional utilitzant la plantilla de JDBC de la primavera.

Introducció: Tots sabem la importància de la base de dades relacional en el desenvolupament d'aplicacions empresarials. La primavera és un dels marcs utilitzats en el desenvolupament d'aplicacions d'empresa basada en Java. La primavera té diferents mòduls com ORM, seguretat, transacció, JPS, JMS etc per donar suport a la necessitat de desenvolupament d'aplicacions empresarials. Quan la primavera es proporciona components fàcilment disponibles per als plug-in, l'enfocament modern per al desenvolupament d'aplicacions Java empresa utilitza àmpliament les característiques. Com a resultat, el desenvolupament és molt més ràpid i eficient. Spring proporciona un mètode senzill de manejar les activitats de base de dades saben que la primavera plantilla de JDBC.

Desavantatges de l'API JDBC estàndard: Estàndard API JDBC té les següents desavantatges.

  • A més de l'execució de la consulta principal, ha d'escriure molt codi per manejar els problemes d'entorn d'execució com la creació de la connexió, declaració, de resultats, etc..
  • Necessitat de gestionar codi de control d'excepcions per separat.
  • La necessitat de gestionar les qüestions transaccionals.

Avantatges de la primavera plantilla de JDBC: plantilla ressort JDBC té els següents avantatges en comparació amb l'enfocament normal de JDBC estàndard.

  • Neteja dels recursos utilitzats es realitza automàticament pel moll plantilla de JDBC. Pel que els desenvolupadors no han de preocupar per l'alliberament dels recursos. Per tant, evita pèrdues de memòria.
  • plantilla ressort JDBC controla l'excepció i els errors d'una manera més eficient. Converteix les excepcions de SQL JDBC en RuntimeExceptions, de manera que els desenvolupadors poden manejar de forma més flexible.
  • La plantilla JDBC primavera també converteix els errors específics del fabricant en un missatge més significatiu. Així que l'ús d'aquests errors són més eficients.

Començant:

In this document, utilitzarem Gradle com una eina de construcció per construir la nostra aplicació. Anem a començar amb una aplicació simple que s'usa per emmagatzemar i recuperar les dades dels empleats juntament amb els seus departaments d'una organització. En el nostre exemple, tindrem els següents atributs de l'objecte emprat:-

  • Número d'identificació de l'empleat
  • Empleat Nom
  • Nom de l'empleat Medi
  • Empleat Cognom
  • Empleat del Departament d'Aneu

I l'objecte departament té els següents atributs:-

  • ID de departament
  • Nom del departament

Ara anem a crear els objectes de Java que s'utilitzen per a comunicar-se amb la base de dades. Les nostres classes POJO per a aquestes dues entitats es mostren com sota:

Listing1: Mostra que mostra la classe d'empleat

[Code]

package com.home.springjdbc.objects;

públic classe empleat {

// La identificació d'empleat

privat cadena EMPID;

// El primer nom de l'empleat

privat cadena empFName;

// El segon nom emprat

privat cadena empMName;

// L'últim nom de l'empleat

privat cadena emplName;

// El departament d'identificació d'empleat

privat cadena empDeptId;

públic empleat ( cadena EMPID, cadena empFName, cadena empMName,

cadena emplName, cadena empDeptId ) {

súper();

aquest.empId = empId;

aquest.Rec Rec nom = nom;

aquest.empMName = empMName;

aquest.emplName = emplName;

aquest.empDeptId = empDeptId;

}

/**

* @return la EMPID

*/

públic cadena getEmpId () {

return empId;

}

/**

* @param empId

* la EMPID per establir

*/

públic anul · lar setEmpId ( cadena EMPID ) {

aquest.empId = empId;

}

/**

* @return la empFName

*/

públic getEmpFName cadena () {

return nom rec;

}

/**

* @param nom rec

* la empFName per establir

*/

públic anul · lar setEmpFName ( cadena empFName ) {

aquest.Rec Rec nom = nom;

}

/**

* @return la empMName

*/

públic getEmpMName cadena () {

return empMName;

}

/**

* @param empMName

* la empMName per establir

*/

públic anul · lar setEmpMName ( cadena empMName) {

aquest.empMName = empMName;

}

 

/**

* @return la emplName

*/

públic getEmpLName cadena () {

return emplName;

}

/**

* @param emplName

* la emplName per establir

*/

públic anul · lar setEmpLName ( cadena emplName) {

aquest.emplName = emplName;

}

/**

* @return la empDeptId

*/

públic getEmpDeptId cadena () {

return empDeptId;

}

/**

* @param empDeptId

* la empDeptId per establir

*/

públic anul · lar setEmpDeptId ( cadena empDeptId ) {

aquest.empDeptId = empDeptId;

}

/*

* ( no-javadoc )

*

* @see java.lang.Object # toString ()

*/

@ Override

públic string toString () {

return “empleat [ empId =” + empId + “, Nom rec =” + nom rec

+ “, empMName =” + empMName + “, emplName =” + emplName

+ “, empDeptId =” + empDeptId + “]”;

}

}

[/Code]

LISTING2: Mostra que mostra la Classe Departament

[Code]

package com.home.springjdbc.objects;

públic classe departament {

// La identificació de departament

privat cadena deptId;

// El nom del departament

privat cadena DEPTNAME;

públic departament ( cadena deptId, cadena DEPTNAME) {

súper ();

aquest.deptId = deptId;

aquest.DEPTNAME = DEPTNAME;

}

/**

* @return la deptId

*/

públic cadena getDeptId () {

return deptId;

}

/**

* @param deptId

* la deptId per establir

*/

públic anul · lar setDeptId ( cadena deptId ) {

aquest.deptId = deptId;

}

/**

* @return DEPTNAME

*/

públic cadena getDeptName () {

return DEPTNAME;

}

/**

* @param DEPTNAME

* DEPTNAME per establir

*/

públic anul · lar setDeptName ( cadena DEPTNAME ) {

aquest.DEPTNAME = DEPTNAME;

}

/*

* (no-javadoc)

*

* @see java.lang.Object # toString()

*/

@ Override

públic string toString () {

return “departament [ deptId =” + deptId + “, DEPTNAME =” + DEPTNAME + “]”;

}

}

[/Code]

Spring proporciona una classe de plantilla conegut com JdbcTemplate. Aquesta classe s'encarrega de la comunicació amb bases de dades relacionals SQL i JDBC. En l'enfocament tradicional de la màxima d'un codi JDBC està ocupat en la gestió de la connexió de manipulació, l'adquisició de recursos, maneig d'excepcions, i la comprovació d'errors general que és irreverent en el context del que estem tractant d'aconseguir. El JdbcTemplate s'encarrega de totes aquestes coses i com a desenvolupador que s'ha de centrar únicament en la lògica de negoci. Un exemple d'implementació de la classe de plantilla es mostra com sota -

Listing3: Mostra que mostra l'aplicació de la plantilla de JDBC

[Code]

package com.home.springjdbc.dao;

importar java.sql.Driver;

importar java.sql.ResultSet;

importar java.sql.SQLException;

importar java.util.List;

importar org.springframework.jdbc.core.JdbcTemplate;

importar org.springframework.jdbc.core.RowMapper;

importar org.springframework.jdbc.datasource.SimpleDriverDataSource;

importar com.home.springjdbc.objects.Employee;

públic classe EmployeeDAO {

públic estàtic anul · lar principal ( String args[] ) {

// DS simples per a la prova (no per a la producció!)

SimpleDriverDataSource datasource = nou SimpleDriverDataSource();

dataSource.setDriverClass((classe<? s'estén conductor>) org.h2.Driver.classe);

dataSource.setUsername( “seva” );

dataSource.setUrl( “JDBC:h2:mem” );

DataSource.setPassword( “” );

JdbcTemplate JdbcTemplate = nou JdbcTemplate(Font de dades);

Sistema.fora.println( “Creació de taules” );

jdbcTemplate.execute( “deixi caure els empleats de la taula si hi ha” );

jdbcTemplate.execute( “crear empleats de taula(”

+ “Identificació del varchar(25), nom cognom varchar(255), middle_name varchar(255), varchar cognoms(255), deptId varchar(25))”);

Cadena[] registres = “E001 Dean Andrew Roberts D25; E002 Jeff Dean Longman D42; E003 Erin Nancy Kirkland D66;”.divisió(“;”);

per ( cadena singleRecord : arxius ) {

Cadena [] cols = singleRecord.split(” “);

Sistema.fora.printf( ” L'addició de registre d'empleat per a% s% s% s% s% s n”,cols[0], cols[1], cols[2], cols[3], cols[4]);

jdbcTemplate.update(“INSERT INTO empleats(identificació, nom, segon nom, cognom, deptId) valors(?,?,?,?,?)”,cols[0], cols[1], cols[2], cols[3], cols[4]);

}

Sistema.fora.println ( ” Querying for customer records where first_name = ‘Erin’:” );

llista<empleat> results = jdbcTemplate.query(

“select * dels empleats en nom cognom = ?”,

nou Objecte[] { “Erin” }, nou RowMapper<empleat>() {

@ Override

públic mapRow empleat(ResultSet rs, int rOWNUM)

llança SQLException {

return nou empleat(rs.getString(“identificació”),

rs.getString(“nom”), rs.getString(“segon nom”),

rs.getString(“cognom”), rs.getString(“deptId”));

}

});

per (empleat empleat : resultats) {

Sistema.fora.println(empleat);

}

}

}

[/Code]

En l'exemple anterior, hem creat una font de dades JDBC utilitzant el SimpleDriverDataSource des de la primavera. A continuació, utilitzar aquesta font de dades per construir la instància JdbcTemplate. Un cop creada la classe JdbcTemplate, podem començar fàcilment trucant a la base de dades. First, vam crear la taula utilitzant el mètode d'execució de la plantilla. A continuació inserim pocs registres amb el mètode d'actualització de la plantilla. Finalment utilitzem el mètode de consulta per recuperar els registres de la nostra elecció. En el nostre exemple hem utilitzat una simple consulta a cercar el registre de la taula d'empleats. No obstant això, segons el nostre disseny veiem que la taula d'empleats té una relació amb el departament de taula a través de la columna - deptId. Així també podem fer servir el mateix codi a la recerca de registres que uneixen aquestes dues taules. Només cal canviar la consulta per posar una combinació. El codi anterior podria modificar-se sota -

Listing4: Mostra que mostra la consulta modificada

[Code]

llista<empleat> results = jdbcTemplate.query(

“seleccioneu emp.first_name, _name emp.middle, _name emp.last, dept.dept_Name dels empleats emp, dept departament on emp.first_name = ?”,

nou Objecte[] { “Erin” }, nou RowMapper<empleat>() {

@ Override

públic EmployeeDtls mapRow(ResultSet rs, int rOWNUM)

llança SQLException {

return nou empleat( rs.getString(“nom”),

rs.getString(“segon nom”),

rs.getString(“cognom”),

rs.getString(“Nombre_dpto “));

}

});

per (EmployeeDtls employeeDtl : resultats) {

Sistema.fora.println(employeeDtl);

}

[/Code]

Per executar aquesta hauríem de tenir un altre EmployeeDtls classe POJO com sota -

Listing5: Mostra que mostra els EmployeeDtls classe POJO

[Code]

package com.home.springjdbc.objects;

públic classe EmployeeDtls {

// El primer nom de l'empleat

privat cadena empFName;

// El segon nom emprat

privat cadena empMName;

// L'últim nom de l'empleat

privat cadena emplName;

// El nom del departament

privat cadena DEPTNAME;

/**

* @param nom rec

* @param empMName

* @param emplName

* @param DEPTNAME

*/

públic EmployeeDtls(cadena empFName, cadena empMName, cadena emplName,

cadena DEPTNAME) {

súper();

aquest.Rec Rec nom = nom;

aquest.empMName = empMName;

aquest.emplName = emplName;

aquest.DEPTNAME = DEPTNAME;

}

/*

* (no-javadoc)

*

* @see java.lang.Object # toString()

*/

@ Override

públic string toString() {

return “EmployeeDtls [Nom rec =” + nom rec + “, empMName =” + empMName

+ “, emplName =” + emplName + “, DEPTNAME =” + DEPTNAME + “]”;

}

/**

* @return la empFName

*/

públic getEmpFName cadena() {

return nom rec;

}

/**

* @param nom rec

* la empFName per establir

*/

públic anul · lar setEmpFName(cadena empFName) {

aquest.Rec Rec nom = nom;

}

/**

* @return la empMName

*/

públic getEmpMName cadena() {

return empMName;

}

/**

* @param empMName

* la empMName per establir

*/

públic anul · lar setEmpMName(cadena empMName) {

aquest.empMName = empMName;

}

/**

* @return la emplName

*/

públic getEmpLName cadena() {

return emplName;

}

/**

* @param emplName

* la emplName per establir

*/

públic anul · lar setEmpLName(cadena emplName) {

aquest.emplName = emplName;

}

/**

* @return DEPTNAME

*/

públic cadena getDeptName() {

return DEPTNAME;

}

/**

* @param DEPTNAME

* DEPTNAME per establir

*/

públic anul · lar setDeptName(cadena DEPTNAME) {

aquest.DEPTNAME = DEPTNAME;

}

}

[/Code]
Summary: Així que en aquest article hem vist com la plantilla de JDBC de primavera es pot utilitzar en aplicacions Java estàndard i empresarials basades. També hem parlat dels avantatges d'aquest enfocament i com podem fer que el desenvolupament molt més ràpid en comparació amb el desenvolupament estàndard basat JDBC.

Fem un resum de la nostra discussió en forma de vinyetes següents -

  • La primavera s'ha convertit en una part essencial de l'ambient modern desenvolupament d'aplicacions empresarials basada en Java.
  • La primavera té diferents seccions, dels quals, la plantilla de JDBC és una part important.
  • plantilla de la primavera JDBC facilita el desenvolupament mitjançant l'adopció de la càrrega de l'adquisició de recursos, gestió de la connexió, maneig d'excepcions, i la comprovació d'error general. Nosaltres, com un desenvolupador només hem de concentrar-nos en l'escenari de negoci complexes.
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share