Propiedades
Estas son propiedades alternativas externalizadas que también se pueden configurar en un archivo de configuración de propiedades Java Típico o pasados a través de elementos infantiles de elementos de propiedades. Por ejemplo:
<Properties Resource = "org/mybatis/ejemplo/config.properties"> <Property name = "username" value = "dev_user"/> <propiedad name = "contraseña" value = "f2fa3! 33tyyg"/> </propiedades>
Las propiedades en IT se pueden usar en todo el archivo de configuración, y las propiedades reemplazables se utilizan para implementar la configuración dinámica. Por ejemplo:
<DataSource type = "Pooled"> <Property Name = "Driver" Value = "$ {Driver}"/> <Property Name = "Url" value = "$ {url}"/> <Property Name = "UserName" value = "$ {username}"/> <Property Name = "Value =" $ {contraseña} "/> </datasource>
En este ejemplo, el nombre de usuario y la contraseña serán reemplazados por los valores establecidos en el elemento Propiedades. Las propiedades del controlador y la URL serán reemplazadas por los valores contenidos en el archivo config.properties.
Ajustes
1.Cacheenable
Esta configuración permite al Global Mapper habilitar o deshabilitar la memoria caché.
Valores válidos: Verdadero, Falso
Valor predeterminado: Verdadero
2.LazyLoadingEnabled
Habilitar o deshabilitar la carga perezosa a nivel mundial. Cuando se deshabilitan, todos los objetos asociados se cargan instantáneamente.
Valores válidos: Verdadero, Falso
Valor predeterminado: Verdadero
3.Asgressivelzyargeing
Cuando está habilitado, un objeto con una propiedad de carga retrasada cargará completamente cualquier propiedad cuando se le llame. de lo contrario,
Cada atributo se cargará según sea necesario.
Valores válidos: Verdadero, Falso
Valor predeterminado: Verdadero
4.Mult IpleresultSetSenable
Permitir o no permitir que se devuelvan múltiples conjuntos de resultados de una declaración separada (requiere controladores adecuados)
Valores válidos: Verdadero, Falso
Valor predeterminado: Verdadero
5.usecolumnlabel
Use etiquetas de columna en lugar de nombres de columnas. Los diferentes conductores son convenientes para diferentes actuaciones. Consulte la documentación del controlador o pruebe el método completo para determinar el controlador utilizado.
Valores válidos: Verdadero, Falso
Valor predeterminado: Verdadero
6.SegeneratedKeys
Permite que JDBC admite claves generadas. Necesita una unidad adecuada. Si se establece en verdadero, esta configuración obliga a las claves generadas a ser utilizadas, y aunque algunos conductores se niegan a ser compatibles, todavía son válidos (como Derby)
Valores válidos: Verdadero, Falso
Valor predeterminado: falso
7. Automapping Behavior
Especifica cómo MyBatis asigna automáticamente columnas a campos/atributos. Parcial solo mapeará automáticamente simple y no tiene resultados anidados.
Completo asignará automáticamente cualquier resultado complejo (cuello o no)
Valores válidos: ninguno, parcial, completo
Valor predeterminado: parcial
8.DefaultExecutortype
Configurar el ejecutor predeterminado. No hay nada especial en el actuador simple. El ejecutor de reutilización reutiliza las declaraciones de preprocesamiento.
Declaraciones de reutilización del ejecutor por lotes y actualización de lotes Valores válidos: simple, reutilización, lote
Valor predeterminado: simple
9.DefaultStatementTimeOut
Establezca el tiempo de tiempo de espera, que determina el tiempo que el controlador espera una respuesta de la base de datos.
Valores válidos: cualquiera, positiva, entero
Valor predeterminado: no establecido (NULL)
Un ejemplo de configuración de elementos de información, la configuración completa es la siguiente:
<nettings> <setting name = "cacheenabled" valor = "true"/> <setting name = "lazyLoadingEnabled" value = "true"/> <setting name = "multipleReSultSetSeSEnabled" value = "true"/> <setting name = "useColumnLabel" value = "true"/> <setting name = "useGeneratedKeys value =" false "/> <shatting name =" name = "valiente" valiente "valiente" " <setting name = "DefaultExeCutortype" value = "simple"/> <setting name = "defaultStatementTimeOut" value = "25000"/> </etnettings>
typealiases
Un tipo de alias es nombrar un nombre corto para los tipos de Java. Solo está relacionado con la configuración XML y solo se usa para reducir las partes redundantes del nombre completamente calificado de la clase. Por ejemplo:
<typealias alias = "autor" type = "domain.blog.author"/> <typealias alias = "blog" type = "domain.blog.blog"/> <typealias alias = "comentario" type = "domain.blog.comment"/> <typealias alias = "post" type = "domain.blog.post"/> <typealias alias = "section" section " type = "domain.blog.section"/> <typealias alias = "tag" type = "domain.blog.tag"/> </typealias>
Con esta configuración, "Blog" se puede usar como arbitrariamente en lugar de dónde se utiliza "Domain.blog.blog". Para los tipos de Java normales, hay muchos alias de tipo incorporado. Ambos son insensibles a los casos, y debido a los nombres sobrecargados, debe prestar atención al manejo especial de los tipos nativos.
TypeHandlers
Si MyBatis establece un parámetro en una declaración de preprocesamiento o toma un valor del conjunto de resultados, el procesador de tipo se utiliza para convertir el valor obtenido en el tipo Java de la manera apropiada. La siguiente tabla describe el procesador de tipo predeterminado.
Puede reescribir el procesador tipo o crear su propio procesador de tipo para manejar tipos no respaldados o no estándar. ¡Pero esta situación es bastante rara! !
ObjectFactory
MyBatis se realiza utilizando una instancia de Factory cada vez que se crea una nueva instancia del objeto de resultado. Si el mapa de parámetros existe, el ObjectFactory predeterminado no funciona más que instanciar la clase de destino utilizando el constructor o constructor predeterminado con los parámetros. Si desea reescribir el ObjectFactory predeterminado, puede crear el suyo propio. Ejemplo omitido.
complementos
MyBatis le permite interceptar llamadas ejecutadas por declaraciones mapeadas en cierto punto. Por defecto, MyBatis permite que los complementos intercepten llamadas del método:
1.Executador
(Actualización, consulta, Flushstatements, Commit, Rollback, GetTransaction, Close, IsClose)
2. ParameterHandler
(GetParameteroBject, setParameters)
3.resultsethandler
(HandLerEdSets, HandleOutputParameters)
4.
(Prepare, parametrizar, lote, actualización, consulta)
Entornos
MyBatis se puede configurar con múltiples entornos. Esto lo ayudará a aplicar asignaciones SQL a múltiples bases de datos.
Una pregunta muy importante para recordar: puede configurar múltiples entornos, pero solo puede seleccionar uno para cada instancia de SQLSessionFactory. Entonces, si desea conectarse a dos bases de datos, debe crear dos instancias SQLSessionFactory, una para cada base de datos. Y si son tres bases de datos, necesita tres instancias, etc.
Los elementos de entorno definen cómo configurar el entorno, por ejemplo:
<Environments Default = "Development"> <Environment ID = "Development"> <TransActionManager type = "JDBC"> <Property Name = "..." Value = "..."/> </ TransActionManager> <DataSource type = "agrupado"> <Property Name = "Driver" Value = "$ {Driv}"/> <Nombre de propiedad = "Url" Valor = "$ {URL}"/> <Nombre de propiedad "Nombre de propiedad =" Nombre de propiedad "Username de usere de useNE. value = "$ {username}"/> <propiedad name = "contraseña" value = "$ {contraseña}"/> </dataSource> </entorno> </entornos> Nota aquí:
1. ID de entorno predeterminado (por ejemplo: default = "desarrollo").
2. La identificación del entorno definida por cada elemento de entorno (por ejemplo: id = "desarrollo").
3. Configuración del Administrador de transacciones (por ejemplo: type = "JDBC").
4. Configuración de la fuente de datos (por ejemplo: type = "agrupada").
managente de transacciones
Hay dos tipos de administradores de transacciones en MyBatis (es decir, type = "[JDBC | administrado]".
1.JDBC --- Esta configuración directa y simplemente usa la configuración de confirmación y reversión de JDBC. Se basa en las conexiones obtenidas de las fuentes de datos para administrar el alcance de la transacción.
2. Gestión --- Esta configuración no hace casi nada. Nunca se compromete ni revela una conexión. Y permite que el contenedor administre todo el ciclo de vida de una transacción (como el contexto de Spring o el servidor de aplicaciones JEE). Por defecto, cierra la conexión. Sin embargo, algunos contenedores no quieren esto, por lo que si necesita detenerlo de la conexión, configure la propiedad CloseConnection en falso. Por ejemplo:
<TransActionManager type = "Managed"> <Property Name = "Closeconnection" value = "false"/> </transactionManager>
Ninguno de los administradores de transacciones requiere ninguna propiedad. Sin embargo, son todos los alias de tipo, y para reemplazarlos, debe colocar su propio nombre o alias de tipo totalmente calificado de su propia clase, que hacen referencia a su clase de implementación para la interfaz TransacFactory.