Análisis del código fuente del proceso de ejecución SQL de Mybatis

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Visión de conjunto

El código fuente se puede usar para ejecutar, generar código que pueda ser reconocido por la máquina, y sus funciones pueden ser referenciadas a través del código fuente abierto.

importancia

1. La ejecución de SQL en mybatis no importa cuál sea el resultado devuelto. También necesita saber de dónde proviene el resultado y qué procesamiento se ha realizado. Solo cuando conozca este principio, podrá comprender mejor el problema cuando se encuentre con un problema. En ese enlace.
2. Puede extender mejor la aplicación, puede reutilizar el código, reducir el costo y el tiempo de desarrollo.
3. El aprendizaje de las ideas de diseño se puede aplicar en otras aplicaciones.

paso

Para leer el código fuente, puede comenzar con casos de prueba. Para cada código fuente, hay muchos casos de prueba escritos por maestros. Podemos usar los casos de prueba escritos por maestros para probar la función de cierre previo, de modo que podamos conocer el principio operativo y algunas ideas de diseño. .

Paso 1 Solicitud de caso de prueba

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Paso 2 Ejecutar el objeto MapperProxy. El proxy MapperProxy es un proxy dinámico jdk. De acuerdo con la interfaz del mapeador entrante, un objeto proxy se genera dinámicamente. El objeto proxy también implementa la interfaz InvocationHandler.

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Paso 3: Vaya a la clase MapperMethod, inicialice la clase interna estática SqlCommand a través del constructor y compárela con la firma del método del archivo de configuración. ¿Existe un método correspondiente?

Análisis del código fuente del proceso de ejecución SQL de Mybatis

Paso 4 ejecutar ejecutar seleccionar la sesión Sql ejecutada

Análisis del código fuente del proceso de ejecución SQL de Mybatis
Análisis del código fuente del proceso de ejecución SQL de Mybatis

Paso 5 Ingrese DefaultSqlsession, seleccione el ejecutor a ejecutar, primero seleccione el ejecutor de la caché, la caché no selecciona el ejecutor simple predeterminado, si mybatis tiene una configuración, seleccione el ejecutor configurado y configure los parámetros de preprocesamiento.

Análisis del código fuente del proceso de ejecución SQL de Mybatis
Análisis del código fuente del proceso de ejecución SQL de Mybatis

Paso 6 Ingrese el objeto de procesamiento de declaración para la consulta y devuelva el conjunto de resultados

Análisis del código fuente del proceso de ejecución SQL de Mybatis

La solicitud del proceso se puede resumir como: solicitud de caso de prueba- "MapperPrxoy (invocador) -" MapperMthod (ejecutar) - "Sqlsession (ejecutor.query ()) -" SimpleExecutor (MappedStatement.doQuery ()) - "StatementHandler (PreparedStatementHandler) -" ResultsetHandler-> devolver conjunto de resultados

-"Fin

para resumir

1. Mybatis utiliza el proxy dinámico de jdk, genera un objeto proxy específico cuando se ejecuta el programa y ejecuta la lógica relacionada. Se puede ejecutar alguna lógica antes y después del método proxy, y el método de clase se puede mejorar sin cambiar la lógica de la clase original. La función, el proxy dinámico es especialmente importante al escribir código de bajo nivel;
2. Se usa ampliamente, como la administración de cosas, el principio de Spring Aop, la interceptación de permisos de inicio de sesión, la salida unificada de registros y las estadísticas que consumen mucho tiempo de cada solicitud de API.
3. El estudio del código fuente no es para fines de investigación. Es necesario aprender las ideas que contiene, como agente dinámico, modo de fábrica, modo de constructor, y utilizar estos principios para aumentar la capacidad de mantenimiento, reutilización, flexibilidad y confiabilidad del programa.

Supongo que te gusta

Origin blog.51cto.com/xxdeelon/2539818
Recomendado
Clasificación