MyBatis es un marco de persistencia de Java que combina objetos con procedimientos almacenados o declaraciones SQL utilizando un descriptor XML o anotaciones.
Desarrollador (es) | El equipo MyBatis |
---|---|
Lanzamiento estable | 3.5.6 / 6 de octubre de 2020 [1] |
Repositorio | ![]() |
Escrito en | Java |
Sistema operativo | Multiplataforma |
Tipo | Marco de persistencia |
Licencia | Licencia Apache 2.0 |
Sitio web | www ![]() |
MyBatis es un software gratuito que se distribuye bajo la licencia Apache 2.0.
MyBatis es una bifurcación de iBATIS 3.0 y es mantenido por un equipo que incluye a los creadores originales de iBATIS .
Resumen de funciones
A diferencia de los marcos ORM , MyBatis no asigna objetos Java a tablas de bases de datos , sino métodos Java a declaraciones SQL .
MyBatis le permite utilizar toda la funcionalidad de su base de datos, como procedimientos almacenados, vistas , consultas de cualquier complejidad y características patentadas del proveedor. A menudo es una buena opción para bases de datos heredadas o desnormalizadas o para obtener un control total de la ejecución de SQL.
Simplifica la codificación en comparación con JDBC . Las sentencias SQL se ejecutan con una sola línea.
MyBatis proporciona un motor de mapeo que mapea los resultados de SQL a árboles de objetos de forma declarativa.
Las sentencias SQL se pueden construir dinámicamente usando un lenguaje incorporado con sintaxis similar a XML o con Apache Velocity usando el complemento de integración Velocity.
MyBatis se integra con Spring Framework y Google Guice . Esta característica le permite a uno construir código comercial sin dependencias.
MyBatis admite el almacenamiento en caché de datos declarativos. Una declaración se puede marcar como almacenable en caché, por lo que los datos recuperados de la base de datos se almacenarán en una caché y las ejecuciones futuras de esa declaración recuperarán los datos almacenados en caché en lugar de llegar a la base de datos. MyBatis proporciona una implementación de caché predeterminada basada en un HashMap de Java y conectores predeterminados para integrarse con: OSCache , Ehcache , Hazelcast y Memcached . Proporciona una API para conectar otras implementaciones de caché.
Uso
Las declaraciones SQL se almacenan en archivos XML o anotaciones. A continuación se muestra un mapeador MyBatis, que consiste en una interfaz Java con algunas anotaciones MyBatis:
paquete org.mybatis.example ;pública interfaz BlogMapper { @Seleccione ( "SELECT * FROM Blog donde id = # {id}" ) Blog selectBlog ( int ID ); }
La sentencia se ejecuta de la siguiente manera.
BlogMapper asignador = sesión . getMapper ( clase BlogMapper . ); Blog blog = mapeador . selectBlog ( 101 );
Las sentencias y asignaciones SQL también se pueden externalizar a un archivo XML de la siguiente manera.
xml version = "1.0" encoding = "UTF-8"?> namespace = " org.mybatis.example.BlogMapper " > id = " selectBlog " parameterType = " int " resultType = " Blog " > seleccionar * de Blog donde id = # { id }
Las declaraciones también se pueden ejecutar utilizando la API MyBatis.
Blog blog = sesión . selectOne ( "org.mybatis.example.BlogMapper.selectBlog" , 101 );
Para obtener más información, consulte la Guía del usuario disponible en el sitio MyBatis. Ver enlaces externos.
Integración de primavera
MyBatis se integra con Spring Framework . Este módulo permite a MyBatis participar en las transacciones de Spring. También construirá mapeadores y sesiones de MyBatis y los inyectará en otros beans.
El siguiente ejemplo muestra una configuración XML básica que configura un asignador y lo inyecta en un bean "BlogService".
id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > name = "dataSource" ref = "dataSource" /> id = "blogMapper" class = "org.mybatis.spring.mapper.MapperFactoryBean" > name = "sqlSessionFactory" ref = "sqlSessionFactory" /> name = "mapperInterface" value = "org.mybatis.example .BlogMapper " /> id = "blogService" class = "org.mybatis.example.BlogServiceImpl" > name = "blogMapper" ref = "blogMapper" />
Llamar a MyBatis ahora es simplemente llamar a un bean:
público de clase BlogServiceImpl implementos BlogService { BlogMapper privado blogMapper ; public void setBlogMapper ( BlogMapper blogMapper ) { esto . blogMapper = blogMapper ; } public void doSomethingWithABlog ( int blogId ) { Blog blog = blogMapper . selectBlog ( blogId ); ... } }
Lenguaje de velocidad
El controlador de lenguaje Velocity le permite utilizar Apache Velocity para generar sus consultas SQL dinámicas sobre la marcha.
< select id = "findPerson" lang = "velocity" > # set ( $ pattern = $ _parameter . name + '%' ) SELECCIONE * DE persona DONDE nombre LIKE @ { patrón, jdbcType = VARCHAR} select >
Generador MyBatis
MyBatis proporciona un generador de código. MyBatis Generator hará una introspección de una tabla de la base de datos (o muchas tablas) y generará los artefactos MyBatis necesarios para realizar operaciones CRUD (Crear, Recuperar, Actualizar, Eliminar).
Un Eclipse plug-in está disponible.
Conservará cualquier código personalizado en caso de regeneración, pero solo si usa el complemento Eclipse.
Migraciones MyBatis
MyBatis Migrations es una herramienta de línea de comandos de Java que realiza un seguimiento de los cambios en el esquema de la base de datos administrando archivos DDL (conocidos como migraciones ).
Las migraciones permiten consultar el estado actual de la base de datos, aplicar cambios de esquema y también deshacerlos. También ayuda a detectar y resolver cambios simultáneos en el esquema de la base de datos realizados por diferentes desarrolladores.
Historia
El proyecto MyBatis es una subsidiaria de iBATIS 3.0 y es mantenido por un equipo que incluye a los creadores originales de iBATIS.
El proyecto se creó el 19 de mayo de 2010 cuando se publicó Apache iBATIS 3.0 y el equipo anunció que el desarrollo continuará con un nuevo nombre y un nuevo hogar en Google Code. [2]
Ver también
- Hibernar
- Aceleración
- Conectividad de base de datos Java (JDBC)
- API de persistencia de Java
- EclipseLink
- Ebean
- jooq
- Apache Cayenne
- IBM PureQuery
- n Hidratar
- Apache OpenJPA
- ActiveJPA
Referencias
- ^ "Lanzamientos · mybatis / mybatis-3" . github.com . Consultado el 19 de abril de 2021 .
- ^ El equipo del proyecto iBATIS se traslada a Google Code
- ^ Adiós Google Code, bienvenido Github
enlaces externos
- Página web oficial