- Plantilla JDBC de primavera
- Comprender la necesidad de la plantilla Spring JDBC
- Ventaja de la plantilla Spring JDBC
- Clases de plantilla JDBC
- Ejemplo de clase JdbcTemplate
Primavera Plantilla Jdbc es un poderoso mecanismo para conectarse a la base de datos y ejecutar consultas SQL. Utiliza internamente la API JDBC, pero elimina muchos problemas de la API JDBC.
Problemas de la API JDBC
Los problemas de la API JDBC son los siguientes:
- Necesitamos escribir mucho código antes y después de ejecutar la consulta, como crear una conexión, una declaración, cerrar el conjunto de resultados, una conexión, etc.
- Necesitamos realizar código de manejo de excepciones en la lógica de la base de datos.
- Necesitamos manejar la transacción.
- La repetición de todos estos códigos de una lógica de base de datos a otra es una tarea que requiere mucho tiempo.
Ventaja de Spring JdbcTemplate
Spring JdbcTemplate elimina todos los problemas mencionados anteriormente de la API JDBC. Le proporciona métodos para escribir las consultas directamente, por lo que ahorra mucho trabajo y tiempo.
Enfoques de primavera Jdbc
Spring Framework proporciona los siguientes enfoques para el acceso a la base de datos JDBC:
- Plantilla Jdbc
- NamedParameterJdbcTemplate
- Plantilla Jdbc simple
- SimpleJdbcInsert y SimpleJdbcCall
Clase JdbcTemplate
Es la clase central en las clases de soporte de Spring JDBC. Se encarga de la creación y liberación de recursos, como la creación y el cierre del objeto de conexión, etc. Por lo que no habrá ningún problema si olvida cerrar la conexión.
Maneja la excepción y proporciona mensajes de excepción informativos con la ayuda de las clases de excepción definidas en el org.springframework.dao paquete.
Podemos realizar todas las operaciones de la base de datos con la ayuda de la clase JdbcTemplate, como inserción, actualización, eliminación y recuperación de datos de la base de datos.
Veamos los métodos de la clase Spring JdbcTemplate.
No. | Método | Descripción |
---|---|---|
1) | actualización int pública (consulta de cadena) | Se utiliza para insertar, actualizar y eliminar registros. |
2) | actualización int pública (consulta de cadena, objeto... argumentos) | se utiliza para insertar, actualizar y eliminar registros usando PreparedStatement usando argumentos dados. |
3) | ejecución pública vacía (consulta de cadena) | se utiliza para ejecutar consultas DDL. |
4) | ejecución pública de T (cadena sql, acción PreparedStatementCallback) | ejecuta la consulta utilizando la devolución de llamada PreparedStatement. |
5) | consulta T pública (String sql, ResultSetExtractor rse) | se utiliza para recuperar registros utilizando ResultSetExtractor. |
6) | Consulta de lista pública (String sql, RowMapper rse) | se utiliza para recuperar registros usando RowMapper. |
Ejemplo de plantilla Spring Jdbc
Suponemos que ha creado la siguiente tabla dentro de la base de datos Oracle10g.
create table employee( id number(10), name varchar2(100), salary number(10) );Employee.java
Esta clase contiene 3 propiedades con constructores, definidores y captadores.
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
Contiene una propiedad jdbcTemplate y tres métodos saveEmployee(), updateEmployee y 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); } }aplicaciónContext.xml
El Fuente de datos de DriverManager se utiliza para contener información sobre la base de datos, como el nombre de la clase del controlador, la URL de conexión, el nombre de usuario y la contraseña.
Hay una propiedad llamada fuente de datos en la clase JdbcTemplate de tipo DriverManagerDataSource. Por lo tanto, debemos proporcionar la referencia del objeto DriverManagerDataSource en la clase JdbcTemplate para la propiedad de origen de datos.
Aquí, estamos usando el objeto JdbcTemplate en la clase EmployeeDao, por lo que lo pasamos mediante el método setter, pero también puedes usar el constructor.
Test.java
Esta clase obtiene el bean del archivo applicationContext.xml y llama al método saveEmployee(). También puede llamar a los métodos updateEmployee() y deleteEmployee() descomentando el código.
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);*/ } }descargue este ejemplo (desarrollado usando MyEclipse IDE)
descargue este ejemplo (desarrollado usando Eclipse IDE)