Como acceder base de datos usando o modelo de primavera JDBC?

Spring JDBC template

mola plantilla JDBC

Visión global: Como todos sabemos que o cadro primavera tornouse parte esencial do desenvolvemento de aplicacións baseado en Java moderna. O Spring Framework efectivamente conseguiu tomar o control de todos os departamentos do mundo de desenvolvemento Java. O modelo JDBC da primavera é usado na maioría do freo aplicacións Jee base para comunicarse co banco de datos.

Neste artigo vou falar sobre como acceder a un banco de datos relacional utilizando o modelo JDBC da primavera.

Introdución: Todos sabemos a importancia de base de datos relacional no desenvolvemento de aplicacións corporativas. Primavera é un dos cadros amplamente utilizados en desenvolvemento de aplicacións corporativos baseados en Java. Primavera ten diferentes módulos como ORM, seguridade, transacción, JPS, JMS, etc, para apoiar a necesidade de desenvolvemento de aplicacións corporativas. Mentres a primavera ofrece compoñentes facilmente dispoñibles para plugin, a visión moderna para o desenvolvemento de aplicacións Java empresa utiliza os recursos extensivamente. Como resultado, o desenvolvemento é moito máis rápido e eficiente. Spring ofrece un sistema sinxelo para xestionar actividades de base de datos coñecido como resorte plantilla JDBC.

Desvantaxes da API JDBC estándar: JDBC estándar API ten as seguintes inconvenientes.

  • Ademais de realizar a consulta de inicio, ten que escribir unha morea de código para xestionar as cuestións ambientais execución como a creación de conexión, afirmación, resultset etc.
  • Debe xestionar código de manipulación de excepción en separado.
  • Debe xestionar cuestións transnacionais.

Vantaxes do freo plantilla JDBC: mola plantilla JDBC ten as seguintes vantaxes en comparación coa visión normal do patrón de JDBC.

  • Limpeza dos recursos utilizados faise automaticamente polo primavera molde JDBC. Así, os desenvolvedores non se preocupe sobre a liberación de recursos. Por iso, evita perdas de memoria.
  • mola plantilla JDBC procesa a excepción e erros de forma máis eficiente. El converte os SQLExceptions JDBC en RuntimeExceptions, de xeito que os desenvolvedores poden tratar con isto de forma máis flexible.
  • A primavera molde JDBC tamén converte os erros específicos do provedor nunha mensaxe mellor significativa. Así, os manejos destes erros son máis eficientes.

Comezar:

In this document, imos usar Gradle como unha ferramenta de construción para construír a nosa aplicación. Imos comezar cunha simple aplicación usada para almacenar e recuperar a información de empregados, xunto cos seus departamentos dunha organización. No noso exemplo, teremos os seguintes atributos do obxecto empregado:-

  • empregado Id
  • empregado Nome
  • Nome do medio empregado
  • empregado Apelidos
  • Funcionario do Departamento de Id

E o obxecto departamento ten os seguintes atributos:-

  • Departamento Id
  • nome Departamento

Agora imos crear os obxectos java que serán usados ​​para comunicarse co banco de datos. As nosas clases POJO para estas dúas entidades se listan como a continuación:

Listing1: Exemplo mostra a clase Employee

[Code]

package com.home.springjdbc.objects;

público clase Employee {

// O funcionario Id

privado cordas empID;

// O nome do funcionario

privado cordas empFName;

// O nome do medio empregado

privado cordas empMName;

// O último nome do funcionario

privado cordas emplName;

// O departamento empregado Id

privado cordas empDeptId;

público Employee ( cordas empID, cordas empFName, cordas empMName,

cordas emplName, cordas empDeptId ) {

super();

esta.EmpID = EmpID;

esta.nome Rec Rec = name;

esta.empMName = empMName;

esta.emplName = emplName;

esta.empDeptId = empDeptId;

}

/**

* @return o empID

*/

público cadea getEmpId () {

return EmpID;

}

/**

* @param EmpID

* o EmpID para definir

*/

público invalidar setEmpId ( cordas empID ) {

esta.EmpID = EmpID;

}

/**

* @return o empFName

*/

público getEmpFName cadea () {

return nome do Rec;

}

/**

* @param nome do Rec

* o empFName para definir

*/

público invalidar setEmpFName ( cordas empFName ) {

esta.nome Rec Rec = name;

}

/**

* @return o empMName

*/

público getEmpMName cadea () {

return empMName;

}

/**

* @param empMName

* o empMName para definir

*/

público invalidar setEmpMName ( cordas empMName) {

esta.empMName = empMName;

}

 

/**

* @return o emplName

*/

público getEmpLName cadea () {

return emplName;

}

/**

* @param emplName

* o emplName para definir

*/

público invalidar setEmpLName ( cordas emplName) {

esta.emplName = emplName;

}

/**

* @return o empDeptId

*/

público getEmpDeptId cadea () {

return empDeptId;

}

/**

* @param empDeptId

* o empDeptId para definir

*/

público invalidar setEmpDeptId ( cordas empDeptId ) {

esta.empDeptId = empDeptId;

}

/*

* ( non-javadoc )

*

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

*/

@ Override

público cadea toString () {

return “Employee [ EmpID =” + EmpID + “, nome Rec =” + nome do Rec

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

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

}

}

[/Code]

Listing2: Mostra mostrando o Departamento de Clase

[Code]

package com.home.springjdbc.objects;

público clase departamento {

// O departamento Id

privado cordas DEPTID;

// O nome do departamento

privado cordas NOMEDEPTO;

público departamento ( cordas DEPTID, cordas NOMEDEPTO) {

super ();

esta.DEPTID = DEPTID;

esta.NOMEDEPTO = NOMEDEPTO;

}

/**

* @return o DEPTID

*/

público cordas getDeptId () {

return DEPTID;

}

/**

* @param DEPTID

* o DEPTID para definir

*/

público invalidar setDeptId ( cordas DEPTID ) {

esta.DEPTID = DEPTID;

}

/**

* @return o NOMEDEPTO

*/

público cordas getDeptName () {

return NOMEDEPTO;

}

/**

* @param NOMEDEPTO

* o NOMEDEPTO para definir

*/

público invalidar setDeptName ( cordas NOMEDEPTO ) {

esta.NOMEDEPTO = NOMEDEPTO;

}

/*

* (non-javadoc)

*

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

*/

@ Override

público cadea toString () {

return “departamento [ DEPTID =” + DEPTID + “, NOMEDEPTO =” + NOMEDEPTO + “]”;

}

}

[/Code]

Spring ofrece unha clase de modelo coñecido como JdbcTemplate. Esta clase é responsable da comunicación con bases de datos relacionais SQL e JDBC. Na visión tradicional máximo dun código JDBC é ocupado na xestión de conexión de manipulación, adquisición de recursos, manipulación de excepción, e comprobación de erros xeral que é irreverente no contexto do que estamos intentando conseguir. O JdbcTemplate coida de todas estas cousas e como un creador debemos concentrar só na lóxica de negocio. A posta en marcha de exemplo da clase de modelo móstrase como a continuación -

Listing3: Exemplo mostra a implantación do modelo de JDBC

[Code]

package com.home.springjdbc.dao;

descargar java.sql.Driver;

descargar java.sql.ResultSet;

descargar java.sql.SQLException;

descargar java.util.List;

descargar org.springframework.jdbc.core.JdbcTemplate;

descargar org.springframework.jdbc.core.RowMapper;

descargar org.springframework.jdbc.datasource.SimpleDriverDataSource;

descargar com.home.springjdbc.objects.Employee;

público clase EmployeeDAO {

público estático invalidar principal ( String args[] ) {

// DS simple para proba (non para a produción!)

SimpleDriverDataSource dataSource = novo SimpleDriverDataSource();

dataSource.setDriverClass((clase<? esténdese a Chofer>) org.h2.Driver.clase);

dataSource.setUsername( “seu” );

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

dataSource.setPassword( “” );

JdbcTemplate JdbcTemplate = novo JdbcTemplate(dataSource);

Sistema.fóra.println( “Creación de táboas” );

jdbcTemplate.execute( “deixa a táboa empregados, se existe” );

jdbcTemplate.execute( “crear empregados de mesa(”

+ “VARCHAR id(25), first_name VARCHAR(255), middle_name VARCHAR(255), VARCHAR last_name(255), DEPTID VARCHAR(25))”);

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

a ( cordas singleRecord : rexistros ) {

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

Sistema.fóra.printf( ” Engadindo rexistro de funcionario a% s% s% s% s% s n”,cols[0], cols[1], cols[2], cols[3], cols[4]);

jdbcTemplate.update(“funcionarios INSERT INTO(identidade, nome, segundo nome, Apelido, DEPTID) values(?,?,?,?,?)”,cols[0], cols[1], cols[2], cols[3], cols[4]);

}

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

lista<Employee> resulta = jdbcTemplate.query(

“select * dos empregados, onde first_name = ?”,

novo obxecto[] { “Erin” }, novo RowMapper<Employee>() {

@ Override

público mapRow empregado(ResultSet rs, int rowNum)

lanza SQLException {

return novo Employee(rs.getString(“identidade”),

rs.getString(“nome”), rs.getString(“segundo nome”),

rs.getString(“Apelido”), rs.getString(“DEPTID”));

}

});

a (empregado empregado : resultados) {

Sistema.fóra.println(empregado);

}

}

}

[/Code]

No exemplo anterior,, montar unha fonte de datos JDBC usando SimpleDriverDataSource desde a primavera. Logo usan esta fonte de datos para construír a instancia JDBCTemplate. Xa que a clase JDBCTemplate é creado, podemos facilmente comezar a chamar a base de datos. First, creamos a táboa usando o método execute do modelo. Logo inserir algúns rexistros usando o método de actualización do modelo. Finalmente, usamos o método de consulta para buscar os rexistros da nosa elección. No noso exemplo, utilizamos unha consulta simple para buscar o rexistro da táboa de empregado. Pero segundo a nosa concepción, vemos que a táboa de funcionarios ten unha relación coa táboa de departamento a través da columna - DEPTID. Por iso, tamén pode usar o mesmo código para buscar rexistros xuntar estas dúas táboas. Só necesitamos cambiar a consulta para poñer unha xuntanza. O código anterior podería ser modificado como a continuación -

Listing4: Exemplo mostra a consulta modificada

[Code]

lista<Employee> resulta = jdbcTemplate.query(

“selecciona emp.first_name, _name emp.middle, _name emp.last, dept.dept_Name dos empregados emp, departamento dept onde emp.first_name = ?”,

novo obxecto[] { “Erin” }, novo RowMapper<Employee>() {

@ Override

público EmployeeDtls mapRow(ResultSet rs, int rowNum)

lanza SQLException {

return novo Employee( rs.getString(“nome”),

rs.getString(“segundo nome”),

rs.getString(“Apelido”),

rs.getString(“DEPT_NAME “));

}

});

a (EmployeeDtls employeeDtl : resultados) {

Sistema.fóra.println(employeeDtl);

}

[/Code]

Para realizar isto, temos que ter máis EmployeeDtls clase POJO como a continuación -

Listing5: Mostra mostrando os EmployeeDtls clase POJO

[Code]

package com.home.springjdbc.objects;

público clase EmployeeDtls {

// O nome do funcionario

privado cordas empFName;

// O nome do medio empregado

privado cordas empMName;

// O último nome do funcionario

privado cordas emplName;

// O nome do departamento

privado cordas NOMEDEPTO;

/**

* @param nome do Rec

* @param empMName

* @param emplName

* @param NOMEDEPTO

*/

público EmployeeDtls(cordas empFName, cordas empMName, cordas emplName,

cordas NOMEDEPTO) {

super();

esta.nome Rec Rec = name;

esta.empMName = empMName;

esta.emplName = emplName;

esta.NOMEDEPTO = NOMEDEPTO;

}

/*

* (non-javadoc)

*

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

*/

@ Override

público cadea toString() {

return “EmployeeDtls [nome Rec =” + nome do Rec + “, empMName =” + empMName

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

}

/**

* @return o empFName

*/

público getEmpFName cadea() {

return nome do Rec;

}

/**

* @param nome do Rec

* o empFName para definir

*/

público invalidar setEmpFName(cordas empFName) {

esta.nome Rec Rec = name;

}

/**

* @return o empMName

*/

público getEmpMName cadea() {

return empMName;

}

/**

* @param empMName

* o empMName para definir

*/

público invalidar setEmpMName(cordas empMName) {

esta.empMName = empMName;

}

/**

* @return o emplName

*/

público getEmpLName cadea() {

return emplName;

}

/**

* @param emplName

* o emplName para definir

*/

público invalidar setEmpLName(cordas emplName) {

esta.emplName = emplName;

}

/**

* @return o NOMEDEPTO

*/

público cordas getDeptName() {

return NOMEDEPTO;

}

/**

* @param NOMEDEPTO

* o NOMEDEPTO para definir

*/

público invalidar setDeptName(cordas NOMEDEPTO) {

esta.NOMEDEPTO = NOMEDEPTO;

}

}

[/Code]
Summary: Así, neste artigo, vimos como mola plantilla JDBC pode ser usado en aplicacións Java Standard e Enterprise con base. Tamén discutir as vantaxes deste enfoque, e como pode facer o desenvolvemento moito máis rápido en comparación co estándar de desenvolvemento baseado JDBC.

Imos resumir nosa discusión en forma de seguir puntos de bala -

  • Primavera converteuse nunha parte esencial do contorno de desenvolvemento de aplicacións empresariais baseadas Java moderna.
  • Primavera ten seccións diferentes, dos cales, o modelo JDBC é unha parte importante.
  • mola plantilla JDBC facilita o desenvolvemento, tomando a carga de adquisición de recursos, xestión de conexión, manipulación de excepción, e erro xeral comprobación. Nós, como un creador só precisa concentrarse no escenario de negocios complexo.
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share