tel./fax: +34 91 675 33 06 [email protected] - www ... · primefaces Últimas ofertas de empleo...

5
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: others

Post on 17-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

tel./fax: +34 91 675 33 [email protected] - www.autentia.com

Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

TecnologíaDesarrolloSistemas

Gran Empresa

Producción

autentia

Certificacióno Pruebas

Verificación previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.

3. Arranque de proyectos basados en nuevas tecnologías

¿Qué ofrece Autentia Real Business Solutions S.L?

Para más información visítenos en: www.autentia.com

Compartimos nuestro conociemiento en: www.adictosaltrabajo.com

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)

BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)

Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery

JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)

Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD

2. Auditoría de código y recomendaciones de mejora

4. Cursos de formación (impartidos por desarrolladores en activo)

07/11/11 Técnicas básicas con Mybatis

1/4www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=TecnicasBasicasConMybatis

E-mail:

Contraseña:

Inicio Quiénes somos Tutoriales Formación Comparador de salarios Nuestro libro Charlas Más

Deseo registrarmeHe olvidado mis datos deacceso

Entrar

Estás en:Inicio Tutoriales Técnicas básicas con Mybatis

Catálogo de serviciosAutentia

Últimas Noticias

Crónica del eventode Liferay en Madrid

El primer capítulo deTerrakas ya está

online

Ya ha terminado laCAS 2011, ahora

toca pensar cómo megustaría que fuera laCAS 2012

Restrospectiva,Carrera de las

empresas 2011

¿Qué ganan losdemás con que tu

vayas a una

Share | 0

DESARROLLADO POR:

Rubén Aguilera Díaz-Heredero

Consultor tecnológico de desarrollo de proyectosinformáticos.

Ingeniero en Informática, especialidad en Ingenieríadel Software

Puedes encontrarme en Autentia: Ofrecemos serviciosde soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver tutoriales de Rubén Aguilera Díaz-Heredero

Regístrate para votar

Técnicas básicas con Mybatis

0. Índice de contenidos.

1. Entorno2. Introducción3. Técnicas básicas.4. Conclusiones.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

Hardware: Portátil Mac Book Pro 17" (2,6 Ghz Intel Core i7, 8 GB DDR3)Sistema Operativo: Mac OS X Snow Leopard 10.6.4Spring 3.0.4Maven 2.2.1Eclipse 3.6 (Helios) con M2Eclipse y Spring IDEMybatis 3.0.4

2. Introducción

En un tutorial anterior ya vimos todo lo necesario para configurar un proyecto en Maven para accedera una base de datos con Spring y Mybatis. Recomiendo seguirlo antes de continuar con este dondevamos a ver una serie de técnicas básicas que podemos realizar con esta librería.

3. Técnicas básicas

En esta ocasión vamos a presentar una serie de técnicas básicas con Mybatis que resuelven

problemas comunes en el acceso a datos de una forma limpia y cómoda.

5Fecha de publicación del tutorial: 2011-11-07

07/11/11 Técnicas básicas con Mybatis

2/4www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=TecnicasBasicasConMybatis

Síguenos a travésde:

vayas a unaconferencia?

Histórico deNOTICIAS

Últimos Tutoriales

CSS3 Media Querieso cómo hacer un

diseño adaptativo segúnel terminal

CSS BrowserSelector o cómo

olvidarnos de los hacksen CSS

Generar hojas decálculo con fórmulas

mediante Apache POI

GeoposicionamientoWeb con HTML5 y

Google Maps

Primeros pasos conSpring Web Flow 2

Últimos Tutoriales delAutor

CSS3 Media Querieso cómo hacer un

diseño adaptativo segúnel terminal

CSS BrowserSelector o cómo

olvidarnos de los hacksen CSS

CAS REST: Cómologarnos en CAS sin

ir a la pantalla de loginpor defecto

ImplementandoSSO con CAS:

ejemplo práctico

Creación de unportlet con

Primefaces

Últimas ofertas deempleo

2011-09-08

Comercial - Ventas -

problemas comunes en el acceso a datos de una forma limpia y cómoda.

Devolver el id autonumérico de una inserción

Este es el típico problema que habría que resolver realizando una consulta inmediatamente despuésde realizar la inserción que es cuando el id se calcula. En Mybatis esto se resuelve con laspropiedades 'useGeneratedKeys' y 'keyProperty'. La primera indica que se utilizan ids generados y lasegunda el id de la entidad que va almacenar el id generado. Ejemplo:

view plain print ?

01. <insert id="insert" parameterType="com.autentia.tutoriales.model.Persona" useGenerateKeys="true" keyProperty02. insert into persona 03. (apellidos,direccion,nombre) 04. values 05. (#{apellidos},#{direccion},#{nombre}) 06. </insert>

IMPORTANTE: tenemos que eliminar de la sentencia insert las referencias a la propiedad que esclave, ya que se va a autocalcular.

Creación de sentencias SQL con plantillas para su reutilización

A fin de reducir el código escrito en los XML's, Mybatis proporciona la etiqueta 'sql' que nos permitedefinir cualquier sentencia SQL para que sea embebida dentro de cualquier otra. Lo veremos mejoren el siguiente ejemplo:

Definimos una sentencia SQL que recupera todas las personas

view plain print ?

01. <sql id="selectAllPersonas"> 02. select * from Personas p 03. </sql>

Ahora si queremos definir una sentencia que recupere todos los registros sería:

view plain print ?

01. <select id="getAllPersonas" resultType="com.autentia.tutoriales.model.Persona"> 02. <include refid="selectAllPersonas"/> 03. </select>

Y ahora para implementar el resto de consultas sería tan sencillo como añadir la cláusula WHERE a laplantilla definida. De este modo si queremos recuperar a las personas que tengan un nombredeterminado sería:

view plain print ?

01. <select id="getPersonasByNombre" parameterType="String" resultType="com.autentia.tutoriales.model.Persona"02. <include refid="selectAllPersonas"/> WHERE p.Nombre = #{nombre} 03. </select>

De este modo reducimos considerablemente la cantidad de código SQL y , por consiguiente, elesfuerzo de mantenimiento.

Realizar Dynamic SQL

Otro de los problemas más típicos que nos encontramos es la necesidad de crear consultas dinámicasen base a una serie de parámetros que pueden existir o no, como ocurre cuando implementamos unbuscador, por ejemplo. En este caso Mybatis nos proporciona una serie de etiquetas para facilitarnosla tarea. Entre las más importantes están: if, choose y where. Su funcionamiento lo entenderemosmejor con el siguiente ejemplo:

view plain print ?

01. <select id="searchPersonas" parameterType="com.autentia.tutoriales.model.PersonaOrder" resultType="com.autentia.tutoriales.model.Persona"02. <include refid="selectAllPersonas"/> 03. <where> 04. <choose> 05. <when test="persona.nombre != '%%'"> 06. AND p.Nombre like #{persona.nombre} 07. </when> 08. <otherwise> 09. AND p.Nombre = #{persona.nombre} 10. </otherwise> 11. </choose>

12. <if test="persona.Apellidos != ''">

07/11/11 Técnicas básicas con Mybatis

3/4www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=TecnicasBasicasConMybatis

Esta obra está licenciada bajo licencia Creative Commons de Reconocimiento-No comercial-Sin obras derivadas2.5

IMPULSA Impulsores Comunidad ¿Ayuda?

----sin clicks + + + + + + + +

0 personas han traído clicks a esta página

powered by karmacracy

Comercial - Ventas -MADRID.

2011-09-03Comercial - Ventas -VALENCIA.

2011-08-19Comercial -Compras -

ALICANTE.

2011-07-12Otras Sin catalogar- MADRID.

2011-07-06Otras Sin catalogar- LUGO.

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; contu ayuda, podemos ofrecerte un mejor servicio.

Enviar comentario

(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

12. <if test="persona.Apellidos != ''"> 13. AND p.Apellidos >= #{persona.apellidos} 14. </if> 15. <if test="persona.direccion != ''"> 16. AND p.Direccion like #{persona.direccion} 17. </if> 18. </where> 19. ORDER BY ${nombreColumna} ${direccionOrdenacion} 20. </select>

Nota: El objeto PersonaOrder tiene que contener los campos 'nombreColumna', que almacena unstring con el nombre de la columna por el que ordenar y 'direccionOrdenacion' que almacena unstring con la dirección de la ordenación que puede ser 'ASC' o 'DESC'. Es muy importante que lasustitución de string se haga con el $ y no con la #. Esto es porque con # Mybatis entiende que es unparámetro de una consulta parametrizada, mientras que, con $ solo realiza la sustitución del string.Además contendra una instancia de la clase Persona llamada 'persona', donde se pasan losparámetros de búsqueda. De ahí, que hagamos referencia a ellos con la notación punto.

4. Conclusiones

Hemos visto una serie de técnicas que nos proporciona Mybatis para resolver problemas cotidianoscuando trabajamos en una librería de acceso a datos. Para otros detalles recomiendo seguir su guíaoficial que la podéis encontrar en http://mybatis.googlecode.com/svn/trunk/doc/en/MyBatis-3-User-Guide.pdf

En sucesivos tutoriales seguiremos explicando otras características de esta estupenda librería comola forma de mapear las distintas relaciones entre entidades.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.

COMENTARIOS

Copyright 2003-2011 © All Rights Reserved | Texto legal y condiciones de uso | Banners | Powered by Autentia | Contacto

07/11/11 Técnicas básicas con Mybatis

4/4www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=TecnicasBasicasConMybatis