Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2715

Jesús Perales: Primeros pasos con Spring #6, Base de datos por JNDI

$
0
0
Primeros pasos con Spring #6, Base de datos por JNDI

Al articulo anterior de esta serie, dejamos una versión funcional de una aplicación de lista de pendientes, con una API REST que es consumida desde una interfaz web basada en Angular y Bootstrap.

Recordemos que la base de datos que utilizamos es H2 y advertimos era solo de prueba, en esta ocasión configuraremos la conexión a nuestra base de datos mediante JNDI y veremos que es muy sencillo cambiar de una base de datos a otra.

Debemos saber que configurar una base de datos por JNDI es dependiente de cada contenedor de aplicaciones(Tomcat, Wildfly, etc) y el motor de base de datos a utilizar.

El contenedor que usamos es Apache Tomcat y la base de datos MySQL, por lo que es necesario tenerlos instalados previamente.

Algo muy bueno en estos momentos es que podemos utilizar Docker para correr cualquier base de datos en cuestión de segundos, mas información aquí

Dividiremos esto en pasos:

Paso 1:

Agregar el controlador JDBC de MySQL, desde el repositorio de Maven a el pom.xml, podemos eliminar la referencia a la dependencia de H2.

Primeros pasos con Spring #6, Base de datos por JNDI

Paso 2:

Crear la carpeta META-INF dentro de la ruta src/main/webapp/ y dentro de ella un archivo llamado context.xml con el siguiente contenido.

<Context path="todo" docBase="todo"
    reloadable="true" crossContext="true">
    <Resource name="jdbc/Todo" auth="Container"
        type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
        username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/todo?createDatabaseIfNotExist=true" />
</Context>

Primeros pasos con Spring #6, Base de datos por JNDI

La funcionalidad de este archivo consiste en registrar un recurso por JNDI el cual nombramos jdbc/Todo y agregamos las credenciales ( username="root" password="root" ) así como la URL a nuestra base de datos MySQL (url="jdbc:mysql://localhost:3306/todo?createDatabaseIfNotExist=true") y el nombre de la clase del controlador JDBC (driverClassName="com.mysql.jdbc.Driver").

Paso 3:

Abriremos el archivo mvc-dispatcher-servlet.xml y modificaremos el bean dataSource por la siguiente linea de código.

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/Todo"/>

Con esta linea especificamos que el dataSource esta dado por un recurso JNDI llamado jdbc/Todo, se antepone java:comp/env/ debido a la forma en que Apache Tomcat nombra los recursos registrados, mas información aquí.

Primeros pasos con Spring #6, Base de datos por JNDI

Paso 4:

Debemos cambiar el dialecto de Hibernate de H2 a MySQL, para eso en el archivo mvc-dispatcher-servlet.xml sustituiremos org.hibernate.dialect.H2Dialect por org.hibernate.dialect.MySQLDialect,

Primeros pasos con Spring #6, Base de datos por JNDI

De forma opcional podemos cambiar la propiedad que destruye y crea las tablas de Hibernate para que simplemente actualice o valide el esquema de nuestra base de datos, en mi caso utilice update, podemos ver que hace cada uno de estos valores aquí.

Conclusión:

Por ultimo comprobamos que nuestra base de datos se creo correctamente y que la información esta guardada en ella.

Primeros pasos con Spring #6, Base de datos por JNDI

Las modificaciones que se hicieron al código están aquí, el código fuente y las imágenes de el proyecto hasta el final de este articulo se encuentran aquí.


Viewing all articles
Browse latest Browse all 2715

Trending Articles


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


5 Tagalog Relationship Rules


Best Crush Tagalog Quotes And Sayings 2017


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Patama Quotes : Tagalog Inspirational Quotes


Pamatay na Banat and Mga Patama Love Quotes


Tagalog Long Distance Relationship Love Quotes


BARKADA TAGALOG QUOTES


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.