Archivo de configuración global de Mybatis mybatis-config.xml

1. La utilidad del archivo de configuración global

Mybatis puede configurar fuentes de datos, administradores de transacciones, comportamiento en tiempo de ejecución, alias de procesamiento, procesamiento de tipos, complementos y otra información a través de archivos de configuración. Cuando se inicializa la aplicación mybatis, el programa analizará el archivo de configuración global, utilizará la información configurada para instanciar el componente de configuración y completará la inicialización de la configuración básica. En el archivo de configuración global de mybatis se completa la configuración correspondiente a través de la etiqueta correspondiente, la estructura global de la etiqueta es la siguiente:

inserte la descripción de la imagen aquí
Nota: Las etiquetas en el archivo de configuración global deben escribirse en el orden anterior al escribir, de lo contrario, habrá problemas; además, al inicializar mybatis, no es necesario usar el archivo de configuración xml, pero también se puede implementar a través de la api de java, porque no importa qué método se use, se instanciará en la clase de configuración Configuración cuando mybatis se inicie e inicialice.

2. El propósito de la etiqueta

¿Cuáles son los usos de las etiquetas presentadas anteriormente? Echémosle un vistazo a través de una tabla

inserte la descripción de la imagen aquí

3. Introducción detallada y uso de etiquetas

propiedades

Información para importar archivos de configuración de propiedades externas, dos formas de usar:

<properties resource="类入类路径下的资源"></properties>
<properties url="网络或者磁盘路径"></properties>

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

ajustes

Es principalmente para controlar algunos comportamientos de mybatis cuando se está ejecutando. Aquí hay algunos atributos de uso común. Para aquellos que no están involucrados, pueden ir al sitio web oficial de mybatis para ver mybatis – MyBatis 3 | Configuración

<settings>
	<!--    全局性开启和关闭任何缓存    -->
	<setting name="cacheEnabled" value="true"/>
	<!-- 延迟加载的全局开关 -->
	<setting name="lazyLoadingEnabled" value="true"/>
	<!-- 允许单条语句返回多个结果集 -->
	<setting name="multipleResultSetsEnabled" value="true"/>
	<!-- 允许使用数据字段列的别名代替数据列名 -->
	<setting name="useColumnLabel" value="true"/>
	<!-- 设置为true时,允许jdbc自动生成主键 -->
	<setting name="useGeneratedKeys" value="false"/>
	<!-- 设置超时时间,它决定数据库驱动等待数据库响应的秒数 -->
	<setting name="defaultStatementTimeout" value="25"/>
	<!-- 是否开启驼峰命名自动映射 -->
	<setting name="mapUnderscoreToCamelCase" value="false"/>
</settings>

tipoAlias

Procesador de alias, cree un alias para algunas clases de Java cuyos nombres (rutas) son demasiado largos y use el alias en el futuro

El uso específico es el siguiente:

<!-- 用来为java类型设置一个简称,主要用于降低冗余的全限定类型名书写 -->
<typeAliases>
	<!-- 直接指定一个类型,为其取别名 -->
	<typeAlias alias="User" type="com.app.test.mapper.User" />
 
	<!-- 给包起别名,其包下对应的所有类型的别名在没有使用@Alias注解的情况下会使用 Bean 的首字母小写的非限定类名来作为它的别名 -->
	<package name="com.app.test.mapper"/>
	<!-- 例如此处,设置后,com.app.test.mapper下所有的Bean的别名为 Bean的首字母小写的非限定类名 -->
 
	<!-- 在为包起别名基础上,也可以通过注解方式设置别名, @Alias('别名') -->
	
</typeAliases>

inserte la descripción de la imagen aquí
Hay algunos alias incorporados en mybatis, como sigue:
inserte la descripción de la imagen aquí

manejadores de tipos

typeHandlers es un procesador de tipos. jdk 1.8 ha implementado todas las especificaciones JSR310 y se pueden usar varios procesadores de fecha y hora escritos por mybatis basados ​​en JSR 310. Las versiones anteriores a mybatis 3.4 requieren que registremos manualmente estos procesadores, y las versiones posteriores se registran automáticamente. No hay nada que decir al respecto, siento que la etiqueta actual se usa para configurar procesadores personalizados.

Los desarrolladores pueden personalizar el controlador de tipos implementando la interfaz org.apache.ibatis.type.TypeHandler o heredando una clase muy conveniente org.apache.ibatis.type.BaseTypeHandler. Como no he definido el tipo de procesador yo mismo durante el proceso de desarrollo, no lo explicaré en detalle aquí. Si necesita personalizarlo, puede consultar el sitio web oficial de mybatis.

complementos

MyBatis permite la interceptación de llamadas en un punto determinado durante la ejecución de una sentencia mapeada. No lo explicaré en detalle aquí, pero se introducirá en la implementación y el uso de complementos en mybatis más adelante.

entornos, entorno, administrador de transacciones, fuente de datos

Estas cuatro etiquetas están anidadas y se usan juntas, de la siguiente manera:

inserte la descripción de la imagen aquí
Se pueden configurar varios entornos en entornos para representar diferentes fuentes de datos, cada fuente de datos corresponde a un entorno y cada entorno tiene una identificación única para distinguir diferentes fuentes de datos.

TransactionManager se usa para configurar el administrador de transacciones. Hay dos formas: JDBC y MANAGED. Generalmente, se puede usar JDBC. En el proyecto spring+mybatis, no se requiere configuración aquí, y Spring administra las transacciones.

dataSource se utiliza para configurar la información de conexión de la fuente de datos, el nivel de aislamiento de transacciones, la cantidad de conexiones, el tiempo de espera, etc.

<!--  enviroments中可以配置多个environment, 其中default属性指定某种环境, 可以达到快速切换的效果  -->
<environments default="development">
	<!-- 用于配置一个具体的环境信息,id属性代表当前环境的唯一标识,enviroments中的default属性就是根据这里的id进行转换 -->
	<environment id="development">
		<!-- 事务管理器:
				type属性:事务管理器的类型,可以是自带的JDBC,也可以是自定义的事务管理器
				自定义的事务管理器实现TransactionFactory接口,设置type时,使用全类名
		-->
		<transactionManager type="JDBC"/>
		<!-- 数据源:
				type属性:数据源类型有三个UNPOOLED、POOLED、JNDI
				也可以使用自定义数据源,自定义的数据源实现DataSourceFactory接口,设置type时,使用全类名
		-->
		<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>

inserte la descripción de la imagen aquí

base de datosIdProvider

Admite múltiples proveedores de bases de datos, el uso específico es el siguiente:

<!-- 配置支持多个厂商的数据库 -->
<databaseIdProvider type="DB_VENDOR">
	<property name="MySQL" value="mysql"/>
	<property name="Oracle" value="oracle"/>
</databaseIdProvider>

La base de datos configurada aquí se usa en el archivo de mapeo sql, especificando el tipo de base de datos correspondiente a la declaración sql

<?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="com.app.test.mapper.UserMapper">
    <select id="selectUser" parameterType="long" resultType="com.app.test.mapper.User" databaseId="mysql">
        select * from oa_user where id = #{
    
    id}
    </select>
 
    <select id="selectUser" parameterType="long" resultType="com.app.test.mapper.User" databaseId="oracle">
        select * from oa_user where id = #{
    
    id}
    </select>
</mapper>

mapeadores

Use la etiqueta de mapeadores para registrar el archivo de mapeo sql en el archivo de configuración global

<mappers>
	<mapper resource="com/app/test/mapper/UserMapper.xml"/>
	
	<!-- 批量注册 -->
	<package name="com.app.test.mapper"/>
</mappers>

Lo anterior es una breve introducción al archivo de configuración global de mybatis.

El artículo ha sido ligeramente modificado, consulte el artículo: https://blog.csdn.net/chaizepeng/article/details/119605823

Supongo que te gusta

Origin blog.csdn.net/u014641168/article/details/130319671
Recomendado
Clasificación