Propriétés
Ce sont des propriétés alternatives externalisées qui peuvent également être configurées dans un fichier de configuration de propriété Java typique ou transmise par les éléments enfants des éléments de propriétés. Par exemple:
<Propriétés ressource = "org / mybatis / example / config.properties"> <propriété name = "username" value = "dev_user" /> <propriété name = "mot de passe" value = "f2fa3! 33tyyg" /> </ properties>
Les propriétés qui s'y trouvent peuvent être utilisées dans tout le fichier de configuration, et les propriétés remplaçables sont utilisées pour implémenter la configuration dynamique. Par exemple:
<dataSource Type = "Poolled"> <propriété name = "Driver" value = "$ {driver}" /> <propriété name = "url" value = "$ {url}" /> <propriété name = "username" value = "$ {username}" /> <propriété name = "mot de passe" value = "$ {mot de passe}" /> </ datasource>
Dans cet exemple, le nom d'utilisateur et le mot de passe seront remplacés par les valeurs définies dans l'élément Properties. Les propriétés du pilote et de l'URL seront remplacées par les valeurs contenues dans le fichier config.properties.
Paramètres
1.Cacheen
Cette configuration permet au mappeur global d'activer ou de désactiver le cache.
Valeurs valides: vrai, faux
Valeur par défaut: vrai
2.LazyloadingEnabled
Activer ou désactiver le chargement paresseux à l'échelle mondiale. Lorsqu'ils sont désactivés, tous les objets associés sont chargés instantanément.
Valeurs valides: vrai, faux
Valeur par défaut: vrai
3.Aggressivelazyloading
Lorsqu'il est activé, un objet avec une propriété de chargement retardée chargera complètement n'importe quelle propriété lors de l'appel. sinon,
Chaque attribut sera chargé au besoin.
Valeurs valides: vrai, faux
Valeur par défaut: vrai
4.Mult iPlereSultSetSenabled
Autoriser ou ne pas autoriser plusieurs ensembles de résultats à être renvoyés à partir d'une instruction distincte (nécessite des pilotes appropriés)
Valeurs valides: vrai, faux
Valeur par défaut: vrai
5.UsecolumnLabel
Utilisez des étiquettes de colonne au lieu des noms de colonnes. Différents pilotes sont pratiques pour différentes performances. Reportez-vous à la documentation du pilote ou testez la méthode complète pour déterminer le pilote utilisé.
Valeurs valides: vrai, faux
Valeur par défaut: vrai
6. UseneratedKeys
Permet à JDBC de prendre en charge les clés générées. Besoin d'un lecteur approprié. S'il est réglé sur true, ce réglage oblige les clés générées à utiliser, et bien que certains chauffeurs refusent d'être compatibles, ils sont toujours valides (comme Derby)
Valeurs valides: vrai, faux
Valeur par défaut: false
7.Automaping Behavior
Spécifie comment MyBatis mlate automatiquement les colonnes aux champs / attributs. Partial ne mappera automatiquement que simple et n'a aucun résultat imbriqué.
Full mappera automatiquement les résultats complexes (cou ou autres)
Valeurs valides: aucun, partiel, plein
Valeur par défaut: partielle
8.DefaultExecutorType
Configurez l'exécuteur par défaut. Il n'y a rien de spécial dans l'actionneur simple. L'exécuteur réutilisé réutilise les déclarations de prétraitement.
Énoncés de réutilisation de lots de lots et mise à jour par lots Valeurs valides: simple, réutilisation, lot
Valeur par défaut: simple
9.DefaultstatementTimeout
Définissez l'heure du délai d'expiration, qui détermine l'heure à laquelle le conducteur attend une réponse de la base de données.
Valeurs valides: tout, positif, entier
Valeur par défaut: pas défini (null)
Un exemple de définition des éléments d'information, la configuration complète est la suivante:
<paramètres> <paramètre name = "cacheenabled" value = "true" /> <paraming name = "LazyLoadingEnabled" value = "true" /> <setting name = "multiplerSultSetsEnabled" value = "true" /> <sefit name = "usecolumnLabel" value = "true" /> <paraming name = "useGereys" <paramètre name = "defaultExeCutOrType" value = "Simple" /> <setting name = "DefaultstationTimeout" value = "25000" /> </daits>
typalias
Un alias de type consiste à nommer un court nom pour les types Java. Il n'est lié qu'à la configuration XML et n'est utilisé que pour réduire les parties redondantes du nom entièrement qualifié de la classe. Par exemple:
<typealias alias = "auteur" type = "domain.blog.author" /> <tycias alias = "blog" type = "domain.blog.blog" /> <typias alias = "comment" type = "domain.blog.comment" /> <tycias alias = "post" type = "domain.log.post" /> <tycias alias = "section" type = "domain.blog.section" /> <tycias alias = "tag" type = "domain.blog.tag" /> </ tycias>
Avec cette configuration, "blog" peut être utilisé comme arbitraire au lieu de l'utilisation "domaine.blog.blog". Pour les types Java normaux, il existe de nombreux alias de type intégré. Ils sont à la fois insensibles à la casse et en raison de noms surchargés, vous devez faire attention à la manipulation spéciale des types natifs.
type de type
Que MyBatis définisse un paramètre dans une instruction de prétraitement ou prend une valeur de l'ensemble de résultats, le processeur de type est utilisé pour convertir la valeur obtenue en type Java de la manière appropriée. Le tableau suivant décrit le processeur de type par défaut.
Vous pouvez réécrire le processeur de type ou créer votre propre processeur de type pour gérer les types non pris en charge ou non standard. Mais cette situation est assez rare! !
objetFactory
MyBatis se fait à l'aide d'une instance ObjectFactory chaque fois qu'une nouvelle instance de l'objet résultat est créée. Si la carte des paramètres existe, l'ObjectFactory par défaut ne fonctionne pas plus que d'instanier la classe cible en utilisant le constructeur ou le constructeur par défaut avec des paramètres. Si vous souhaitez réécrire l'objetFactory par défaut, vous pouvez créer le vôtre. Exemple omis.
plugins
MyBatis vous permet d'intercepter les appels exécutés par des instructions mappées à un certain point. Par défaut, MyBatis permet aux plugins d'intercepter les appels de méthode:
1.EXECUTOR
(Mise à jour, requête, flushstatements, validation, rollback, getTransaction, close, isclose)
2. Paramètre
(getParameterObject, setParameters)
3. ResultSethandler
(HandlerresultSets, mancheOutputParameters)
4.statementhandler
(Préparer, paramétrer, lot, mise à jour, requête)
Environnements
MyBatis peut être configuré avec plusieurs environnements. Cela vous aidera à appliquer les mappages SQL à plusieurs bases de données.
Une question très importante à retenir: vous pouvez configurer plusieurs environnements, mais vous ne pouvez en sélectionner qu'un pour chaque instance SQLSessionFactory. Donc, si vous souhaitez vous connecter à deux bases de données, vous devez créer deux instances SQLSessionFactory, une pour chaque base de données. Et s'il s'agit de trois bases de données, vous avez besoin de trois instances, etc.
Les éléments de l'environnement définissent comment configurer l'environnement, par exemple:
<environnements default = "Development"> <Environment id = "Development"> <transactionManager type = "JDBC"> <propriété name = "..." value = "..." /> </ transactionManager> <DataSource Type = "Poolled"> <propriété Name = "Driver" value = "$ {Driver}" /> <Property Name = "url" Value = "$ {url}" /> <woftaméli value = "$ {username}" /> <propriété name = "mot de passe" value = "$ {mot de passe}" /> </ataSource> </vironter> </ environnements> Remarque ici:
1. ID d'environnement par défaut (par exemple: default = "Development").
2. L'ID d'environnement défini par chaque élément d'environnement (par exemple: id = «développement»).
3. Configuration du gestionnaire de transaction (par exemple: type = "JDBC").
4. Configuration de la source de données (par exemple: type = "groupé").
transactionmanager
Il existe deux types de gestionnaires de transactions dans MyBatis (c'est-à-dire type = "[jdbc | géré]".
1.JDBC --- Cette configuration est directement et utilise simplement les paramètres de validation et de retour de JDBC. Il s'appuie sur les connexions obtenues à partir de sources de données pour gérer la portée des transactions.
2.Maraged --- Cette configuration ne fait presque rien. Il ne commute ni ne fait reculer d'une connexion. Et il permet au conteneur de gérer l'intégralité du cycle de vie d'une transaction (comme le contexte du serveur d'applications Spring ou JEE). Par défaut, il ferme la connexion. Cependant, certains conteneurs n'en veulent pas, donc si vous devez l'arrêter de la connexion, définissez la propriété CloseConnection sur False. Par exemple:
<transactionManager type = "Managed"> <propriété name = "CloseConnection" value = "false" /> </ transactionManager>
Aucun des deux gestionnaires de transactions ne nécessite de propriétés. Cependant, ce sont tous des alias de type, et pour les remplacer, vous devez placer votre propre nom ou type d'alias de type de votre propre classe, qui fait référence à votre classe d'implémentation pour l'interface transacfactoire.