La transformación de proyectos pequeños presenta rápidamente mybatis

¡Continúe creando, acelere el crecimiento! Este es el primer día de mi participación en el "Nuggets Daily New Plan · June Update Challenge", haz clic para ver los detalles del evento

Antecedentes del proyecto

Al comienzo del proyecto, se posicionó como complemento y complemento de funciones, proporcionando una función de informe para que el OA existente contara los datos de cada proceso.

La función es muy simple.Teniendo en cuenta la velocidad de desarrollo, el desarrollo se lleva a cabo directamente de acuerdo con el springbootproyecto , y la dependencia solo se usaspring-boot-starter-web, spring-boot-starter-jdbc, sqljdbc4, lombook

Inyecta la instancia @Beanla consulta mediante , y todas las operaciones posteriores se realizan mediante .sqlJdbcTemplatesqltemplate.queryForList(sqlStr)

Debido a la complejidad del sql ignorado y al hecho de que las plantillas de cadena java8aún no compatibles, el sql en el código es similar al siguiente

imagen.png

Es muy inconveniente leer y modificar. La decisión sigue siendo introducir mybatis. La demanda principal es mejorar la legibilidad y la capacidad de mantenimiento de SQL.

empezar a remodelar

importar el correspondientestart

pom.xmlAgregar dependencias springbootdedicadas enmybatis

<dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
</dependency>
复制代码

Complemento de configuración en application.yml

mybatisEspecifique principalmente sqlla ubicación de análisis del xmlarchivo en

mybatis:
  mapper-locations:
    - classpath:mybaits/*.xml
复制代码

carpeta suplementaria

El diseño de directorio propuesto para el proyecto es el siguiente:

|- src\main\java
    |- com.xx
        |- bean
        |- mapper
        xxxApplication
|- src\main\resources
    |- static
    |- mybaits
        |- Request.xml
    application.yml
复制代码

En la misma capa de xxxApplicationesta clase de inicio, cree unamapper carpeta para almacenar archivos de interfaz relacionados . Debe usar la anotación de clase @Mapper en la interfaz para permitir que el marco mybatis lo reconozca. El ejemplo de código es el siguientexxMapper

@Mapper
public interface RequestMapper {
}
复制代码

En mybatisla carpeta, guarde xxMapperel xmlarchivo

Según la documentación oficial de mybatis , se puede saber que el formato de archivo estándar sqlpara almacenar es el siguiente:xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
复制代码

Necesitamos modificar el atributo en la mapperetiqueta para que se corresponda con el nuestro; complementar la nueva consulta en el mismo formatonamespacexxMapper<select></select>

Finalmente, a través de JdbcTemplatela implementación sql, la especificación es el Mapper + xmlarchivo , y las llamadas de funciones relevantes se ajustan, y la transformación de todo el proyecto básicamente se completa.

Resumir

Gracias a mybatis-spring-boot-starteresto start, además de que seguimos algunas convenciones predeterminadas, solo se usa una configuración para mybatisaplicar a este proyecto. El mayor cambio en esta transformación es procesar el sql original en xxMapper + xx.xmldos archivos.

Puedes apreciar lo elegante que está el sql escrito xmlen

imagen.png

Supongo que te gusta

Origin juejin.im/post/7102332487434502157
Recomendado
Clasificación