¡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 springboot
proyecto , y la dependencia solo se usaspring-boot-starter-web, spring-boot-starter-jdbc, sqljdbc4, lombook
Inyecta la instancia @Bean
la consulta mediante , y todas las operaciones posteriores se realizan mediante .sql
JdbcTemplate
sql
template.queryForList(sqlStr)
Debido a la complejidad del sql ignorado y al hecho de que las plantillas de cadena java8
aún no compatibles, el sql en el código es similar al siguiente
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.xml
Agregar dependencias springboot
dedicadas 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
mybatis
Especifique principalmente sql
la ubicación de análisis del xml
archivo 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 xxxApplication
esta 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 mybatis
la carpeta, guarde xxMapper
el xml
archivo
Según la documentación oficial de mybatis , se puede saber que el formato de archivo estándar sql
para 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 mapper
etiqueta para que se corresponda con el nuestro; complementar la nueva consulta en el mismo formatonamespace
xxMapper
<select></select>
Finalmente, a través de JdbcTemplate
la implementación sql
, la especificación es el Mapper + xml
archivo , 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-starter
esto start
, además de que seguimos algunas convenciones predeterminadas, solo se usa una configuración para mybatis
aplicar a este proyecto. El mayor cambio en esta transformación es procesar el sql original en xxMapper + xx.xml
dos archivos.
Puedes apreciar lo elegante que está el sql escrito xml
en