You are on page 1of 64

SPRING JDBC

Curso: Programacin orientada a objetos

Facultad: Ing. Mecnica, Aeronutica, automotriz y


Software

Especialidad: Ingeniera de Software

Profesor : Ing. Gustavo Coronel

Integrantes:

Avila Herrera Melissa


Pariona Felices Roberto
Snchez Reyes Susana

2010
JDBC
INTRODUCCION
Caractersticas
JDBC es una biblioteca de clases e interfaces que
permite la conexin con base de datos utilizando
Java.
La biblioteca JDBC dispone de una interfaz para
ejecutar instrucciones SQL que ofrece una
funcionalidad bsica para el acceso a datos. las
clases e interfaces que componen el API de JDBC
son conceptos comunes de acceso a base de datos
para todas las bases de datos.
JDBC se diseo como una interfaz de programacin
de aplicaciones (API) orientado a objetos para
acceder (consultas) a bases de datos y es un
estndar.
El API JDBC se diseo como una interfaz para
ejecutar consultas SQL y admite todos los dialectos
de SQL.
Conexin a la Base de Datos
Mecanismo JDBC
El funcionamiento prctico de JDBC obliga a
conocer los siguientes 5 procedimientos, a saber:
1.Establecer conexin.
2.Crear sentencia.
3.Ejecutar sentencia.
4.Procesar resultados.
5.Cerrar.
1.- Establecer la conexin
Tiene dos operaciones bsicas.

a) DriverManager

b) Connection
a.- DriverManager
La clase DriverManager es la capa gestora de
JDBC, trabajando entre el usuario y el
controlador (driver). Se encarga de seguir el
rastro de los controladores que estn
disponibles y establecer la conexin entre la
base de datos y el controlador apropiado.
Para trabajar con el Puente
JDBC-ODBC:
try {
Class.forName(sun.jdbc.odbc.JdbcOdbcDriv
er);
} catch (ClassNotFoundException cnfe) {
System.err.println(No ha podido
encontrarse el driver
de ODBC.);
}
Para trabajar con MySQL:
try {
Class.forName(com.mysql.jdbc.Driver);
} catch (ClassNotFoundException cnfe) {
System.err.println(No ha podido encontrarse el
driver de MySQL);
}
Para trabajar con postgreSQL:
try {
Class.forName(org.postgresql.Driver);
} catch (ClassNotFoundException cnfe) {
System.err.println(No ha podido encontrarse el
driver de postgreSQL);
}
Para trabajar con Oracle:
try {
Class.forName(oracle.jdbc.driver.Oracl
eDriver);
} catch (ClassNotFoundException cnfe) {
System.err.println(No ha podido
encontrarse el driver
de Oracle);
}
b.- Connection
Un objeto Connection representa una conexin a una
base de datos. Una sesin con una conexin incluye las
sentencias SQL que son ejecutadas y los resultados
que son devueltos a travs de dicha conexin. Una
misma aplicacin puede tener una o ms conexiones
con una sola base de datos o puede tener conexiones
con varias bases de datos diferentes.

La forma estndar de establecer una conexin con una


base de datos es llamando al mtodo
DriverManager.getConnection. Este mtodo toma
como parmetro una cadena de caracteres que contiene
una URL. La clase DriverManage trata de localizar el
driver que pueda conectar con la base de datos
representada por esa URL.
Para trabajar con el Puente JDBC-ODBC con MsAccess (Windows
XP):
import java.sql.*;

publicstatic void conexion ( ) throws Exception {


try {
// Carga el driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Define la cadena de conexin
String sourceURL= "jdbc:odbc:DSNSistema";
//Crea el objeto connection a travs de DriverManager
Connection con =DriverManager.getConnection(sourceURL);
System.out.println("La conexion establecida es:"+ con);
} catch(ClassNotFoundExceptioncnfe){
System.err.println(cnfe);
} catch(SQLExceptionsqle){
System.err.println(sqle);
};
};
Para trabajar con MySQL.
import java.sql.*;
publicstatic void conexion ( ) throws Exception {
try {
// Carga el driver
Class.forName("com.mysql.jdbc.Driver);
//Define la cadena de conexin
String sourceURL= "jdbc:mysql://localhost/bd_pruebas,
usuario, password";
//Crea el objeto connection a travs de DriverManager
Connection con =DriverManager.getConnection(sourceURL);
System.out.println("La conexion establecida es:"+ con);
} catch(ClassNotFoundExceptioncnfe){
System.err.println(cnfe);
} catch(SQLExceptionsqle){
System.err.println(sqle);
};
};
Para trabajar con postgreSQL:
import java.sql.*;
publicstatic void conexion ( ) throws Exception {
try {
// Carga el driver
Class.forName(org.postgresql.Driver);
//Define la cadena de conexin
String database = Bd;
String username = admin;
String password = admin;
String sourceURL= "jdbc:postgresql:+database, username, password";
//Crea el objeto connection a travs de DriverManager
Connection con =DriverManager.getConnection(sourceURL);
System.out.println("La conexion establecida es:"+ con);
} catch(ClassNotFoundExceptioncnfe){
System.err.println(cnfe);
} catch(SQLExceptionsqle){
System.err.println(sqle);
};
};
Para trabajar con Oacle XE (versin 10g).

import java.sql.*;
publicstatic void conexion ( ) throws Exception {
try {
// Carga el driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//Define la cadena de conexin
String sourceURL=jdbc:oracle:thin:@localhost:1521:orcl, scott,
tiger;
//Crea el objeto connection a travs de DriverManager
Connection con =DriverManager.getConnection(sourceURL);
System.out.println("La conexion establecida es:"+ con);
} catch(ClassNotFoundExceptioncnfe){
System.err.println(cnfe);
} catch(SQLExceptionsqle){
System.err.println(sqle);
};
};
2.- Crear sentencia.
Statement

Un objeto Statement se usa para enviar sentencias SQL a una


base de datos.
Statement senten = con.createStatement();
En realidad el mtodo createStatement
debe llevar dos parmetros enteros que
especifican el comportamiento del objeto
ResultSet u hoja de datos

public Statement
createStatement(intresultSetType,
intresultSetConcurrency) throws
SQLException
PreparedStatement
Un objeto PreparedStatement se usa para sentencias
SQL que toman uno o ms parmetros como argumentos
de entrada (parmetros IN).
PreparedStatement tiene un grupo de mtodos que fijan
los valores de los parmetros IN, los cuales son enviados
a la base de datos cuando se procesa la sentencia SQL.

PreparedStatement updateSales = con.prepareStatement (


UPDATE productos SET ventas = ? WHERE COD = ?
);
3.-Ejecutar sentencia.
La sentencia SQL se ejecuta a travs de los
mtodos executeQuery o executeUpdate
dependiendo de que no exista o exista modificacin
de los datos respectivamente.
1. Consulta executeQuery() Es una operacin
SELECT que devuelve el resultado de una consulta
encapsulado en un objeto de tipo ResultSet
2. Actualizacin executeUpdate() Es una operacin
INSERT, UPDATE o DELETE que realiza una
modificacin sobre la base de datos
ResultSet resul = senten.executeQuery (
SELECT a, b, c FROM Table2);

Int filas_afectadas =
senten.executeUpdate(UPDATE personas
set nombre=Marina where id=4);
4.-Procesar resultados.
ResultSet
Un ResultSet contiene todos los registros (filas)
que satisfacen las condiciones impuestas en una
sentencia SQL y proporciona acceso a los datos
en dichos registros.
El mtodo ResultSet.next() se usa para moverse al
siguiente registro del ResultSet, haciendo el
siguiente registro el registro actual.
5.-Cerrar.
Es necesario cerrar adecuadamente la sentencia el ResultSet y
la conexin.

senten.close();
resul.close();
con.close();
Conviene recordar:
El mecanismo de funcionamiento bsico JDBC,
Establecer conexin:
Class.forName() y DriverManager.getConnection
Crear sentencia:
Statement senten = connexion.createStatement();
Ejecutar sentencia:
executeUpdate o executeQuery
Procesar resultados:
while, resul.first(), resul.last(), resul.beforeFirst(),
resul.afterLast(), resul.absolute (int num),
resul.next(), resul.previous, resul.getRow().
Cerrar:
sentencia.close(), resultados.close(),
conexion.close();
Spring Framework
El Spring Framework (conocido tambin como Spring) es un
framework de cdigo abierto de desarrollo de aplicaciones para la
conocida plataforma JAVA. La primera versin fue escrita por
Rod Jonhson, quien lo lanz primero con la publicacin de su libro
Expert One-on-One Java EE Design and Development (Wrox
Press, octubre 2002).

A pesar de que Spring Framework no obliga a usar un modelo de


programacin en particular, se ha popularizado en la comunidad de
programadores en Java al considerrsele una alternativa y
sustituto del modelo de Enterprise JavaBean. Por su diseo el
framework ofrece mucha libertad a los desarrolladores en Java y
soluciones muy bien documentadas y fciles de usar para las
prcticas comunes en la industria.
Spring Framework
Mientras que las caractersticas fundamentales de este
framework pueden emplearse en cualquier aplicacin
hecha en Java, existen muchas extensiones y mejoras
para construir aplicaciones basadas en web por encima
de la plataforma empresarial de Java (Java Enterprise
Platform). Una de esas extensiones es el Spring JDBC.

El 29 de octubre del presente ao se lanz la versin


3.0.5
Introduccin al Spring Framework
2.5
Por qu Spring?
Spring es nico, por varias razones:

Se ocupa de aspectos importantes que otros frameworks


populares no. Spring se enfoca en proporcionar una manera de
administrar los objetos de negocio.

Spring es integral y modular. Spring tiene una arquitectura en


capas, lo que significa que puedes optar por utilizar casi cualquier
parte de ella de forma aislada, y an as su arquitectura es
internamente consistente. Puedes optar por utilizar Spring slo
para simplificar el uso de JDBC, por ejemplo, o puedes optar por
utilizar Spring para gestionar todos los objetos de tu negocio. Y es
fcil de introducir gradualmente Spring en proyectos existentes.
Introduccin al Spring Framework
2.5
Spring est diseado desde cero para ayudarle a escribir cdigo
que es fcil de probar. Spring es un framework ideal para probar
proyectos.

Spring es una tecnologa de integracin cada vez ms importante,


su papel es reconocido por proveedores grandes y pequeos.

Spring est orientado a la mayora de asuntos de infraestructura


de aplicaciones tpicas. Tambin va a lugares a los que otros
frameworks no van.
Beneficios de la arquitectura de
Spring
Algunos de los beneficios de Spring son los siguientes:

Spring puede organizar efectivamente tus objetos de


nivel medio. Spring se encarga del shellcode que
quedara si slo utilizas Struts u otros frameworks
orientados a determinados APIs de J2EE. Y los
servicios de configuracin de gestin de Spring pueden
ser utilizados en cualquier capa de la arquitectura, en
cualquier entorno de ejecucin.

Spring facilita la buena prctica de programacin,


reduciendo el coste de la programacin de interfaces
en lugar de clases a casi cero.
Beneficios de la arquitectura de
Spring
Spring est diseado para que las aplicaciones creadas con
ella dependen tan poco de su API como sea posible.

Las aplicaciones creadas usando Spring son muy faciles de


probar. Para ciertos escenarios de pruebas, el Spring
Framework proporciona objetos simulados y clases de
apoyo de pruebas. Spring tambin proporciona una
exclusiva funcionalidad llamada "integration testing" en la
forma de Spring TestContext Framework, adems JUnit
3.8 soporta clases que le permiten probar su cdigo de
forma rpida y fcil, incluso mientras se accede a una base
de datos intermedia.
Abstraccin JDBC y jerarqua de excepcin de
acceso a datos
El acceso a datos es otra rea donde Spring brilla.

JDBC ofrece una abstraccin bastante buena de la base de datos subyacente, pero es un
API doloroso de usar. Algunos de los problemas incluyen:

La necesidad de manejo de error detallado para garantizar que ResultSet, Statements y


(lo ms importante) Conexions, se cierren despus de su uso. Esto significa que el uso
correcto de JDBC puede rpidamente dar lugar a una gran cantidad de cdigo. Tambin
es una fuente comn de errores. Fugas de conexin pueden llevar rpidamente a las
aplicaciones a una carga baja.

La relativamente poco informativa SQLException. Tradicionalmente JDBC no ofrece una


jerarqua de excepcin, pero produce una excepcin de SQL en respuesta a todos los
errores. Descubrir lo que realmente sali mal (por ejemplo, fue el problema un deadlock
o una sentencia SQL invalida) consiste en examinar el valor SQLSTATE y el cdigo de
error. El significado de estos valores vara entre bases de datos.
, por lo que sus DAOs no son necesariamente ligados a JDBC debido a las excepciones que
pueden lanzar.
Abstraccin JDBC y jerarqua de excepcin de
acceso a datos

Spring aborda estos problemas de dos maneras:

Al proporcionar API que mueven las excepciones tediosas y


propensas a errores del cdigo de aplicacin al framework.
El framework se encarga de toda la gestin de
excepciones, el cdigo de aplicacin se puede concentrar en
la emisin de SQL apropiado y la extraccin de resultados.
Abstraccin JDBC y jerarqua de excepcin de
acceso a datos

Al proporcionar una jerarqua de excepciones significativa


del cdigo de aplicacin para trabajar en lugar de
SQLException. Cuando Spring obtiene en primer lugar una
conexin de un DataSource, examina los metadatos para
determinar el producto de base de datos. Spring utiliza
este conocimiento para mapear SQLExceptions y corregir
la excepcin en su propia jerarqua descendiente de
org.springframework.dao.DataAccessException. As, el
cdigo puede trabajar con excepciones significativas, y no
es necesario preocuparse por SQLState propietario o los
cdigos de error. El acceso a datos de Spring no son
excepciones JDBC especficas
Spring JDBC puede ayudar de varias maneras:

Usted nunca tendr que escribir otra vez un bloque de finalizacin para usar JDBC.

Las fugas de conexin sern cosa del pasado

Tendr que escribir menos cdigo en general, y ese cdigo estar claramente enfocado en
las sentencias SQL necesarias.

Usted nunca tendr que ahondar a travs de la documentacin del RDBMS para averiguar
qu oscuro cdigo de error devuelve un nombre de columna errneo. Su aplicacin no
depender del cdigo de control de errores especfico de RDBMS.

Cualquier tecnologa de persistencia que use, usted encontrar fcil de implementar el


patrn DAO sin lgica de negocio en funcin de cualquier API de acceso a datos particular.

Usted se beneficiar de una mejor portabilidad (en comparacin con JDBC crudo) en reas
avanzadas como manipulacin de BLOB y la invocacin de procedimientos almacenados que
devuelven resultsets.

Todo esto equivale a ganancias sustanciales en productividad y menos errores.


Mdulos principales de Spring
Spring Core (Inversin del control (IoC) / Inyeccin de
dependencias (DI))
Spring AOP (Programacin orientada a aspectos)
Spring JDBC (Acceso a datos)
Spring MVC (desarrollo Web segn el patrn MVC)
Spring Remoting (distribucin)
Spring Transaction Abstraction (Gestin de
transacciones)
Otros: Spring TestContext (pruebas), Spring JMX
(gestin), Spring Security (seguridad), Spring Web Flow
(control de flujos en aplicaciones Web)
Spring JDBC (Acceso a datos)
El mdulo de JDBC
Este mdulo contiene varias caractersticas muy tiles,
pero la ms poderosa es el JdbcTemplate.
Ejemplo clsico
Tomemos como ejemplo el ya clsico ciclo para leer
datos de una tabla:
Obtener un DataSource de algn lugar, ya sea por
JNDI en un contenedor, o bien crendolo por cdigo en
aplicaciones independientes.
Obtener una conexin a la base de datos, por medio
del DataSource.
Crear un PreparedStatement con el query a realizar.
Ejemplo clsico
Si el query trae parmetros, configurarlos uno por uno.
Ejecutar el query para obtener un ResultSet.
Recorrer el ResultSet, haciendo algo con los objetos; un
ejemplo simple es crear una instancia de alguna clase de
Value Object y ponerle los valores que vienen en la tupla
actual, y luego poner ese Value Object en una lista.
Cerrar el ResultSet.
Cerrar el PreparedStatement. Ejemplo

Cerrar la conexin.
Conclusin
Todo lo anterior tiene que estar dentro de uno o varios
try-catch por si ocurre alguna excepcin, cerrar los
objetos que tengamos.
Es algo muy tedioso de programar, sobre todo cuando se
quiere obtener una lista corta de objetos que se van a
presentar en alguna pgina web o en una interfaz y dichos
objetos pueden ser simples mapas con los nombres de las
columnas como llaves.
Spring-Jdbc
Jerarqua de paquetes
El framework de abstraccin JDBC de Spring consiste en cuatro
diferentes paquetes core, dataSource, object y support.

El paquete org.springframework.jdbc.core contiene la clase


JdbcTemplate y varias interfaces para callback,

El paquete org.springframework.datasource contiene clases de


utilera para acceso fcil a los DataSource, y varias
implementaciones de DataSource que pueden ser utilizadas para
pruebas o para correr cdigo JDBC sin modificar fuera de un
contenedor J2EE
Spring-Jdbc
Jerarqua de paquetes

El paquete org.springframework.jdbc.object contiene clases que


representan las consultas (queries) a los RDBMS, las
actualizaciones (updates) y los procedimientos almacenados
(stored procedures) en objetos reusables .

Y por ltimo, el paquete org.springframework.jdbc.support es donde


se encuentra la traduccin de excepciones SQLException as como
algunas clases de utilera. Las excepciones arrojadas durante el
procesamiento de JDBC son traducidas a excepciones definidas en
el paquete org.springframework.dao.
Spring-Jdbc
Usando las clases principales de JDBC para controlar
el procesamiento de JDBC y el manejo de errores.
JdbcTemplate:
Se encarga de ejecutar las funciones comnes de JDBC
como la creacin y ejecucin de statements. Esta clase
ejecuta los queries (consultas) SQL, las actualizaciones
(updates) y las llamadas a procedimientos almacenados
(stored procedures), realizando la iteracin sobre
ResultSets y extrayendo los parametros retornados.
Tambin captura las excepciones de JDBC y las traduce
en una jerarqua de excepciones ms genrica e
informativa definida en el paquete
org.springframework.dao
Spring-Jdbc
JdbcTemplate (Ejemplos)
Consultar por un String
String surname = (String)
this.jdbcTemplate.queryForObject( "select surname
from t_actor where id = ?", new Object[]{new
Long(1212)}, String.class);

Consultar y rellenar un simple objeto de dominio.


Actor actor = (Actor) this.jdbcTemplate.queryForObject(
"select first_name, surname from t_actor where id = ?",
new Object[]{new Long(1212)}, new RowMapper() { public
Object mapRow(ResultSet rs, int rowNum) throws
SQLException { Actor actor = new Actor();
actor.setFirstName(rs.getString("first_name"));
actor.setSurname(rs.getString("surname")); return
actor; } });
Spring-Jdbc
NamedParameterJdbcTemplate:
La clase NamedParameterJdbcTemplate aade soporte a los
statements JDBC mediante parmetros nombrados (a diferencia
de los statements JDBC que usan solo argumentos '?' para su
sustitucin). Ejem:
public int countOfActorsByFirstName(String firstName) {

String sql = "select count(0) from T_ACTOR where


first_name = :first_name";

SqlParameterSource namedParameters = new


MapSqlParameterSource("first_name", firstName);

return namedParameterJdbcTemplate.queryForInt(sql,
namedParameters);
}
Spring-Jdbc
SimpleJdbcTemplate: La clase SimpleJdbcTemplate es un
envolvente de un JdbcTemplate clsico que toma ventaja de las
caractersticas de Java 5 como son los argumentos variables.
public Actor findActor(long id) {

String sql = "select id, first_name, last_name from T_ACTOR where


id = ?";
ParameterizedRowMapper<Actor> mapper = new
ParameterizedRowMapper<Actor>() {

public Actor mapRow(ResultSet rs, int rowNum) throws SQLException


{ Actor actor = new Actor(); actor.setId(rs.getLong("id"));
actor.setFirstName(rs.getString("first_name"));
actor.setLastName(rs.getString("last_name"));
return actor; }
};

return this.simpleJdbcTemplate.queryForObject(sql, mapper, id); }


Spring-Jdbc
DataSource
Para poder trabajar con datos de una base de datos, uno
necesita obtener una conexin a la misma. La manera en que
Spring hace esto es mediante un DataSource. Un
DataSource es parte de la especificacin JDBC y puede
verse como una fbrica de conexiones. Permite al
contenedor o al framework ocultar el pool de conexiones y
el manejo de transaciones del cdigo de aplicacin.
Spring-Jdbc
DataSource
La clase DriverManagerDataSource trabaja de la misma
manera en que usualmente se obtiene una conexin JDBC. Se
tiene que especificar el nombre calificado de la clase del
driver JDBC que se va a utilizar para que el DriverManager la
cargue. Posteriormente se provee una url de conexin que
vara dependiendo de los drivers JDBC. Uno tiene que
consultar la documentacin del driver para encontrar el valor
correcto a usar. Finalmente uno provee el nombre de usuario
y la contrasea usadas para conectarse a la base de datos.
Ejemplo:
Spring-Jdbc
DataSource
public static void crearDataSource() {

DriverManagerDataSource ds = new
DriverManagerDataSource();

ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@localhost:1521:XE");
ds.setUsername("demo02");
ds.setPassword("demo02");
template = new JdbcTemplate(ds);
}
Spring-Jdbc
SQLExceptionTranslator
Es una interface para ser implementado por las clases, puede
traducir entre SQLExceptions y las excepciones de Spring
derivadas de
org.springframework.org.dao.DataAccessException.
Las implementaciones pueden ser genricas (por ejemplo,
mediante el uso de cdigos de SQLState para JDBC) o
propietarias (por ejemlo, usando cdigos de error de
Oracle) para mayor precisin.
Conclusin
Aspectos a mejorar en el ejemplo:
SQLException: excepcin genrica
Captura de excepciones para no hacer nada
Cmo lo mejora Spring?
Mapeo de SQLException a excepciones especficas
Subclases de org.springframework.dao.DataAccessException

Uso de unchecked exceptions


DataAccessException es una subclase de
java.lang.RuntimeException
Se pueden capturar si se desea, pero no es obligatorio

Automatiza la gestin de conexiones


Se declara una fuente de datos y Spring la gestiona
No se accede directamente a las conexiones, sino que se utiliza
un JdbcTemplate Usualmente un
org.springframework.jdbc.core.JdbcTemplate
El Wiki
http://spring-jdbc.wikispaces.com/
A LEER EN CANTIDADES INSDUSTRIALES
FIN
DE LA PRESENTACION

A LEER EN CANTIDADES
INSDUSTRIALES
Bibliografa
http://www.xmind.net/share/lshimokawa/spring-
jdbc/
http://www.comunidadjava.org/?q=node/421
http://www.javadocexamples.com/java_source/or
g/springframework/prospring/ticket/db/Sample
BatchTests.java.html
http://www.comunidadjava.org/?q=node/421
http://chuwiki.chuidiang.org/index.php?
title=Ejemplo_sencillo_con_SpringFramework_D
AO
Spring-Jdbc
Spring JDBC ofrece un objeto llamado JdbcTemplate
(El equivalente Spring a la clase Connection ), el cual se
configura con un DataSource Entonces el componente
que necesita obtener estos datos (por ejemplo un DAO)
puede simplemente tener una propiedad llamada
jdbcTemplate, por ejemplo:
Primero se obtiene el equivalente Spring a una
conexin con base de datos. Aunque hay muchas formas
de hacerlo, incluyendo ficheros de configuracin, una
forma ms inmediata, directamente en cdigo seria :
Ejemplo
Ejemplo
Una vez que se obtiene la conexin, con el mtodo
query() de JdbcTemplate podemos hacer la consulta. A
este mtodo:
Le pasamos un String con la sentencia SQL de select.
Le pasamos una clase RowMapper encargada de:
instanciar una clase Persona, leer una fila del ResultSet
resultante y devolver dicha clase Persona.
Devuelve una Collection rellena de Persona.
Spring-Jdbc
El JdbcTemplate tiene varios mtodos para leer datos,
por ejemplo para obtener un solo dato o un solo registro,
as como para modificar (INSERT, UPDATE, DELETE).
Lo que el JdbcTemplate hace es todo lo que se menciono
antes:
Abre una conexin, crea un PreparedStatement con el
SQL y los parmetros que se le da, lee los datos y los
pone en una lista, cierra todo y los devuelve.
Spring-Jdbc
Adems, cualquier excepcin de SQL que ocurra la
convierte a un DataAccessException (hay toda una
jerarqua de clases) pero es de tipo RuntimeException,
as que se puede incluso quitar el try-catch y dejar que
quien invoque el mtodo se encargue de lidiar con
cualquier excepcin.
Spring-Jdbc
Los paquetes de Spring
org.springframework.jdbc y
org.springframework.core.simple

Es donde vienen la mayora de las clases que


intervienen en esto, aunque como pueden ver, tienen
que usar solamente una o dos, pero es importante
conocer las excepciones que pueden arrojarse y esas
vienen en org.springframework.dao.