Archivo de configuración MyBatis (mybatis-config.xml)

La estructura del archivo de configuración MyBatis es la siguiente

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 配置 -->
    <properties /><!-- 属性 -->
    <settings /><!-- 设置 -->
    <typeAliases /><!-- 类型命名 -->
    <typeHandlers /><!-- 类型处理器 -->
    <objectFactory /><!-- 对象工厂 -->
    <plugins /><!-- 插件 -->
    <environments><!-- 配置环境 -->
        <environment><!-- 环境变量 -->
            <transactionManager /><!-- 事务管理器 -->
            <dataSource /><!-- 数据源 -->
        </environment>
    </environments>
    <databaseIdProvider /><!-- 数据库厂商标识 -->
    <mappers /><!-- 映射器 -->
</configuration>

Los nodos de elementos en el archivo mybatis-config.xml están en un orden determinado y las posiciones de los nodos deben ordenarse de acuerdo con las posiciones anteriores; de lo contrario, se producirá un error de compilación.

El elemento de configuración es el nodo raíz de todo el archivo de configuración XML y su función es equivalente al administrador de MyBatis, en él se almacenará toda la información de configuración de MyBatis. 

etiqueta de propiedades

La etiqueta de propiedades puede especificar un archivo de propiedades externo (database.properties) a través del atributo de recurso, o se puede configurar a través del subelemento de propiedades.

1. Especificar archivo

Utilice propiedades para especificar archivos externos, el código es el siguiente.

<properties resource="mybatisDemo/resources/database.properties"/>

Database.properties se utiliza para describir la configuración relacionada con la conexión de la base de datos, como el controlador de la base de datos, la URL para conectarse a la base de datos, el nombre de usuario de la base de datos, la contraseña de la base de datos, etc.

2. Configuración del subelemento de propiedades.

Configure las variables de nombre de usuario y contraseña a través de la propiedad del subelemento de propiedades y luego haga referencia a estas variables en el nodo de entornos:

<properties>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</properties>

Haga referencia a las variables de nombre de usuario y contraseña en el nodo de entornos.

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${driver}"/>
            <property name="url" value="${url}"/>
            <property name="username" value="${username}"/>
            <property name="password" value="${password}"/>
        </dataSource>
    </environment>
</environments>

También puede escribir el valor del atributo directamente en value sin usar la etiqueta de propiedades.

etiqueta de configuración

La etiqueta de configuración se utiliza para configurar el comportamiento de ejecución de MyBatis. Puede afectar profundamente el funcionamiento subyacente de MyBatis. Generalmente, no requiere mucha configuración. En la mayoría de los casos, se puede utilizar su valor predeterminado.

Hay muchos elementos de configuración en la configuración, pero en realidad no se utilizan muchos, solo podemos estudiar claramente las configuraciones de uso común. Las descripciones de los elementos de configuración comunes en los ajustes se muestran en la siguiente tabla

configuración configuración elemento descripción
Elementos de configuración efecto Opciones de configuración valor por defecto
caché habilitado Esta configuración afecta al cambio global del caché de configuración en todos los mapeadores. verdadero|falso verdadero
carga diferida habilitada Cambio global para carga diferida. Cuando está habilitado, todos los objetos asociados se cargan de forma diferida. En una asociación específica, el estado de cambio del elemento se puede anular configurando el atributo fetchType.  verdadero|falso FALSO
agresivoLazyLoading Cuando está habilitado, las llamadas a cualquier propiedad diferida harán que los objetos con propiedades diferidas se carguen por completo; de lo contrario, cada propiedad se cargará según demanda. verdadero|falso El valor predeterminado es verdadero antes de la versión 3.4.1 (no incluida)
, falso después
comportamiento de mapeo automático Especifica cómo MyBatis debería asignar automáticamente columnas a campos o propiedades.
NINGUNO significa cancelar el mapeo automático.
PARCIAL significa que solo se asignará automáticamente y los conjuntos de resultados anidados y mapeados no están definidos.
FULL asignará automáticamente conjuntos de resultados arbitrariamente complejos (ya sean anidados o no)
NINGUNO、PARCIAL、COMPLETO PARCIAL
tipo de ejecutor predeterminado Configure el ejecutor predeterminado. SIMPLE es un ejecutor normal; REUSE reutilizará declaraciones preparadas; el ejecutor BATCH reutilizará declaraciones y realizará actualizaciones por lotes  SIMPLE, REUTILIZACIÓN, LOTES SIMPLE
mapUnderscoreToCamelCase Si se debe habilitar la asignación automática de reglas de nomenclatura de casos de camello, es decir, una asignación similar del nombre de columna de base de datos clásico A_COLUMN al nombre de atributo Java clásico aColumn verdadero|falso FALSO

Ejemplo de configuración:

<settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="multipleResultSetsEnabled" value="true"/>
    <setting name="useColumnLabel" value="true"/>
    <setting name="useGeneratedKeys" value="false"/>
    <setting name="autoMappingBehavior" value="PARTIAL"/>
    <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
    <setting name="defaultExecutorType" value="SIMPLE"/>
    <setting name="defaultStatementTimeout" value="25"/>
    <setting name="defaultFetchSize" value="100"/>
    <setting name="safeRowBoundsEnabled" value="false"/>
    <setting name="mapUnderscoreToCamelCase" value="false"/>
    <setting name="localCacheScope" value="SESSION"/>
    <setting name="jdbcTypeForNull" value="OTHER"/>
    <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

etiqueta tipoAliases

Para no especificar el nombre completo de la clase en todas partes, podemos definir un alias usando la etiqueta typeAliases

etiqueta typeHandlers

typeHandlers convierte principalmente los valores obtenidos en tipos Java de manera razonable. En typeHandler, se divide en jdbcType y javaType, donde jdbcType se usa para definir tipos de bases de datos y javaType se usa para definir tipos de Java. La función de typeHandler es realizar la conversión mutua entre jdbcType y javaType.

MyBatis admite tipos de procesamiento personalizados. Al personalizar el tipo de procesamiento, debe implementar la interfaz org.apache.ibatis.type.TypeHandler o heredar la clase org.apache.ibatis.type.BaseTypeHandle. Para obtener más información, consulte el sitio web oficial: mybatis – MyBatis 3 | Configuración

etiqueta de entornos

En la pestaña de entornos, puede configurar múltiples entornos operativos de MyBatis y asignar SQL a múltiples bases de datos diferentes.

El entorno es una subetiqueta de entornos que se utiliza para configurar un conjunto de entornos operativos para MyBatis. Es necesario especificar el ID del entorno operativo, la gestión de transacciones, la configuración de la fuente de datos y otra información relacionada.

Podemos conectarnos a múltiples bases de datos configurando múltiples etiquetas de entorno, cabe señalar que una de ellas debe designarse como entorno operativo predeterminado (especificado por defecto).

La etiqueta de entorno proporciona dos subetiquetas, transactionManager y dataSource.

etiqueta de administrador de transacciones

MyBatis admite dos administradores de transacciones, JDBC y MANAGED.

Si se utiliza un administrador de transacciones de tipo JDBC, el servidor de aplicaciones es responsable de las operaciones de administración de transacciones como confirmación, reversión, etc. Si utiliza un tipo de administrador de transacciones ADMINISTRADO, el servidor de aplicaciones es responsable de administrar el ciclo de vida de la conexión.

etiqueta de fuente de datos

Se utiliza para configurar las propiedades de conexión de la base de datos, como el nombre del controlador, la URL, el nombre de usuario y la contraseña de la base de datos que se va a conectar.

El atributo de tipo en dataSource se utiliza para especificar el tipo de fuente de datos. Existen los siguientes tres tipos.

1)Sin agrupar

UNPOOLED no tiene un grupo de conexiones de base de datos y es ineficiente. MyBatis requiere abrir y cerrar conexiones para cada operación de base de datos, es un poco lento y generalmente se usa en aplicaciones simples.

2) FIESTAS

Para el tipo de fuente de datos POOLED, MyBatis mantendrá un grupo de conexiones de base de datos. Y para cada operación de la base de datos, MyBatis utiliza conexiones del grupo de conexiones y las devuelve al grupo una vez completada la operación. Reducción del tiempo de conexión inicial y autenticación requerido para crear nuevas conexiones.

3)JNDI

Para los tipos de fuente de datos JNDI, MyBatis obtendrá la conexión de la fuente de datos JNDI.

El código de muestra para la etiqueta dataSource es el siguiente:

<dataSource type="POOLED">
    <!-- MySQL数据库驱动 -->
    <property name="driver" value="com.mysql.jdbc.Driver" />
    <!-- 连接数据库的URL -->
    <property name="url"
        value="jdbc:mysql://localhost:3306/test?characterEncoding=utf8" />
    <property name="username" value="root" />
    <property name="password" value="root" />
</dataSource>

etiqueta de mapeador

La etiqueta mappers se utiliza para especificar la ruta del archivo de mapeo SQL de MyBatis.
mapper es una subetiqueta de mappers. El atributo de recurso en mapper se usa para especificar la ruta del archivo de mapeo SQL (ruta de recursos de clase). Por ejemplo, el nombre
del archivo de mapeo SQL es Student.xml, que se encuentra en el paquete llamado net.cky.mapper. Se puede configurar así: 

<mappers>
    <mapper resource="net/cky/mapper/Student.xml"/>
</mappers>

Supongo que te gusta

Origin blog.csdn.net/qq_43079001/article/details/132845309
Recomendado
Clasificación