Je n'ai pas réalisé de projet récemment, j'ai donc réorganisé le fichier de configuration le plus complet pour le générateur MyBatis le plus complet (MBG pour faire court), avec des explications détaillées, et je n'ai plus à regarder le guide d'utilisation d'En;
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype générateur ConfigurationPublic "- // Mybatis.org//dtd Mybatis Generator Configuration 1.0 // en" http://mybatis.org/dtd/mybatis-generator-config_1_0. Générateur -> <GeneratorConfiguration> <! - Il peut être utilisé pour charger des éléments de configuration ou des fichiers de configuration. Dans l'ensemble du fichier de configuration, vous pouvez utiliser $ {PropertyKey} pour référencer la ressource de l'élément de configuration: configurer l'adresse de chargement des ressources, utiliser la ressource, et MBG commence à partir de ClassPath, tels que com / myproject / générateur de générateur-cong.properties URL: Configurer la géologie du chargement des ressources, utilisez url, tel que fichier: // c: / myfolder/GneratorConfig.properties. Notez que une seule des deux propriétés peut être sélectionnée; De plus, si MyBatis-Generator-Maven-Plugin est utilisé, les propriétés définies dans pom.xml peuvent être utilisées directement dans GeneratorConfig.xml <Properties Resource = "" URL = "" /> -> <! Files / ibm / sqllib / java / db2java.zip "/> -> <! - Contexte: l'ID d'environnement pour générer un groupe d'objets: obligatoire, ID de contexte, utilisé pour inviter lors de la génération d'une erreur defauftMoDelType: spécifiez le style de l'objet généré 1, conditionnel: similaire à Hierarchical; 2, plat: tout le contenu (clé primaire, blob), etc. est généré dans un objet; 3, hiérarchique: la clé principale génère un objet XXKEY (classe de clé), blob, etc. génère un objet séparément, et d'autres attributs simples sont dans un objet (classe d'enregistrement) TargetRuntime: 1, MyBatis3: la valeur par défaut, génère du contenu basé sur MyBatis3.x et ci-dessus, y compris xxxBysample; 2, mybatis3simple: similaire à MyBatis3, mais ne génère pas xxxBysample; introduitColumnIMPL: le nom entièrement qualifié de la classe, utilisé pour étendre MBG -> < Généralement conserver la valeur par défaut, Rencontrez les mots clés de la base de données (mots clés Java), utilisez ColumnOverride pour remplacer -> <propriété name = "AutodeliMitkeywords" Value = "false" /> <! Value = "org.mybatis.generator.api.dom.defaultjavaformatter" /> <! - Format xml code -> <propriété name = "xmlformatter" value = "org.mybatis.generator.api.dom.defaultxmlformatter" /> <! Par exemple, Oracle est des devis doubles, et MySQL par défaut `backticks; -> <propriété name = "débutDelimiter" value = "` "/> <propriété name =" enddelimiter "value =" `" /> <! - Vous devez l'avoir, utilisez cette configuration pour lier la base de données @todo: peut-il être étendu -> <jdbccconnection driverclass = "com.mysql.jdbc. userId = "root" password = "admin"> <! - Ici, vous pouvez définir les propriétés de propriété, et chaque propriété de propriété est définie sur le pilote configuré -> </jdbcconnection> <! - Le processeur de type Java est utilisé pour traiter les types dans les types DB en par défaut; Notez que par défaut, vous essairez d'utiliser entier, long, court, etc. pour correspondre à des types de données décimaux et numériques; -> <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverdefaultIMPL"> <! - TRUE: Utilisez BigDecimal pour les types de données décimales et numériques false: par défaut, échelle> 0; longueur> 18: utiliser BigDecimal; Scale = 0; Longueur [10,18]:: Utiliser Long; échelle = 0; longueur [5,9]: utilisez entier; échelle = 0; longueur <5: utiliser court; -> <propriété name = "ForceBigDeCImals" value = "false" /> </ javatyperesolver> <! - Le créateur de modèle Java est les éléments nécessaires responsables: 1. Classe de clé (voir Défusion de contexte de DefaultModelType); 2. Classe Java; 3. Classe de requête TargetPackage: le package à placer dans la classe générée, le package réel est contrôlé par l'attribut AttributeBpackages; TargetProject: le projet cible, spécifiez un répertoire existant et le contenu généré sera placé dans le répertoire spécifié. Si le répertoire n'existe pas, MBG ne créera pas automatiquement un répertoire -> <javamodelgenerator targetpackage = "com._520it.mybatis.domain" cibleProject = "src / main / java"> <! - Pour mybatis3 / mybatis3Simple, crée automatiquement un constructeur pour chaque classe générée, qui contient tout Fields; au lieu d'utiliser des setters; -> <propriété name = "Constructor-basased" value = "false" /> <! - Sur la base du ciblePackage, une couche de package est générée en fonction du schéma de base de données. La classe générée finale est placée sous ce package, et la valeur par défaut est fausse -> <propriété name = "ActiveBpackages" value = "true" /> <! - Pour MyBatis3 / MyBatis3Simple Crée une classe immuable? Si c'est vrai, MBG créera une classe sans méthode de setter et le remplacera par une classe similaire à la constructeur -> <propriété name = "immuable" value = "false" /> <! - Définissez un objet racine. Si cet objet racine est défini, le Keyclass ou RecordClass généré héritera de cette classe; Cette option peut être remplacée dans la propriété RootClass de la table Remarque: S'il y a les mêmes attributs que la classe racine dans la classe de clés ou la classe d'enregistrement, MBG ne régénera pas ces attributs, y compris: 1. Le nom d'attribut est le même, le même type et la même méthode Getter / Setter; -> <propriété name = "rootclass" value = "com._520it.mybatis.domain.basedomain" /> <! - Définissez si vous devez appeler la méthode Trim () sur le champ de type de chaîne dans la méthode Getter -> <propriété name = "trimStrings" value = "true" /> </ javamodeLegenerator> <! - xml Generator de fichier pour générer SQL Maps. Notez qu'après MyBatis3, nous pouvons utiliser l'interface MAPPER.xml Fichier + Mapper (ou n'utilisez pas d'interface de mappeur), ou n'utilisez que l'interface du mappeur + annotation. Par conséquent, si la configuration de JavaclientGenerator doit générer du XML, cet élément doit être configuré avec TargetPackage / TargetProject: Identique à JavamodelGenerator -> <SqlMapGenerator TargetPackage = "com._520it.mybatis.mapper" TargetProject = "Src / Main / Resourated"> <! le schéma de base de données. La classe générée finale est placée dans ce package, et la valeur par défaut est fausse -> <propriété name = "ActiveBpackages" value = "true" /> </qlmapGenerator> <! - Pour MyBatis, il s'agit de générer une interface de mapper. Notez que si l'élément n'est pas configuré, l'interface de mappel ne sera pas générée par défaut TargetPackage / TargetProject: Identique à JavamodeLgeneratorTyT: Choisissez comment générer une interface de mappel (sous MyBatis3 / Mybatis3Simple): 1. AnnotatedMapper: il générera une interface de mappe XML ne sera pas généré; 2. MixedMapper: en utilisant une configuration hybride, l'interface de mappeur sera générée et l'annotation appropriée sera ajoutée de manière appropriée, mais le XML sera généré dans XML; 3. Xmlmapper: l'interface de mappeur sera générée et l'interface dépendra complètement de XML; Notez que si le contexte est MyBatis3Simple: uniquement AnnotatedMapper et XMLMapper -> <JavaclientGenerator TargetPackage = "com._520it.mybatis.mapper" type = "AnnotedMapper" TargetProject = "SRC / Main / Java"> <! - Basé sur le TargetPackage, un calomdage du package est généré par DataBase. La classe générée finale est placée sous ce package, qui par défaut est false -> <propriété name = "ActiveBpackages" value = "true" /> <! - Vous pouvez ajouter une interface parent à toutes les interfaces générées, mais MBG n'est responsable que de la génération et n'est pas responsable de la vérification de <propriété Name = "RootInterface" Value = "" /> -> </ JavacLentGenerator> <! - Sélectionner un tableau pour générer des fichiers liés. Il peut y avoir une ou plusieurs tables. Il doit y avoir un tableau sélectionné par l'élément de table. Les fichiers suivants seront générés: 1. SQL MAP Fichier 2. Générer une classe de clé primaire; 3. Classes avec d'autres champs sauf Blob et la clé primaire; 4. Classes contenant un blob; 5. Une classe conditionnelle pour les utilisateurs pour générer des requêtes dynamiques (selectByExample, DeleteByExample), facultatif; 6. Interface de mappel (Facultatif) TableName (nécessaire): le nom de la table de l'objet à générer; Remarque: problèmes sensibles aux cas. Dans des circonstances normales, MBG identifiera automatiquement la sensibilité des cas de l'identifiant de la base de données. En général, MBG interrogera le tableau de données basé sur le schéma de jeu, le catalogue ou le nom de table, et suivra le processus suivant: 1. S'il existe des espaces dans le schéma, le catalogue ou le nom de table, alors l'ensemble de format est utilisé avec précision pour interroger; 2. Sinon, si l'identifiant de la base de données est capitalisé, MBG transforme automatiquement le nom du tableau en capital puis recherche; 3. Sinon, si l'identifiant de la base de données est capitalisé, MBG transforme automatiquement le nom du tableau en capital puis recherche; Recherche; 4. Sinon, utilisez le format de cas spécifié pour interroger; De plus, si l'objet de base de données est utilisé lors de la création d'une table, le nom de la table sera créé à l'aide du cas donné même si l'identifiant de la base de données est utilisé, dans ce cas, veuillez définir le Delimitentifiants = "true" pour conserver le format de cas; éventuellement: 1. Schéma: le schéma de la base de données; 2. Catalogue: le catalogue de la base de données; 3. Alias: L'alias défini pour le tableau de données. Si Alias est défini, alors tous sélectionnent générés dans les instructions SQL, le nom de la colonne deviendra: alias_actualColumnname4, domainOrdName: le nom de la classe de domaine générée. Si vous n'êtes pas défini, utilisez le nom de la table comme nom de la classe de domaine; Il peut être défini sur Somepck.DomainName, alors la classe DomainName sera automatiquement placée dans le package SomePCK; 5, activerInsert (par défaut True): Spécifiez s'il faut générer une instruction d'insertion; 6, ActivedElectByPrimaryKey (par défaut True): Spécifiez si vous devez générer l'instruction pour interroger l'objet en fonction de la clé principale (c'est-à-dire GetById ou Get); 7. ActivedElectByExample (par défaut True): MyBatis3Simple est faux, spécifiant s'il faut générer des instructions de requête dynamiques; 8. Activer upDateByPrimaryKey (par défaut True): spécifiant s'il faut générer une instruction qui modifie l'objet en fonction de la clé principale (c'est-à-dire la mise à jour); 9. ENTIPEDELETEBYPRIMARYKEY (par défaut True): Spécification de la génération d'une instruction qui supprime l'objet en fonction de la clé principale (c'est-à-dire delete); 10. Entabledel eteByExample (par défaut True): MyBatis3Simple est faux, spécifiez s'il faut générer des instructions de suppression dynamique; 11, pertiableCountByExample (par défaut True): MyBatis3Simple est faux, spécifiez s'il faut générer une requête dynamique Nombre total de mots (utilisé pour le nombre total de mots pour la pagination); 12, activerupDateByExample (par défaut True): MyBatis3Simple est faux, spécifiez s'il faut générer des instructions de modification dynamique (modifier uniquement les attributs qui ne sont pas vides dans l'objet); 13, ModelTyp E: reportez-vous à la mise de défaut de l'élément de contexte, ce qui équivaut à l'écrasement; 14, Delimitidentifiants: reportez-vous à l'explication de TableName, notez que les délimitifiants par défaut sont des citations doubles. Si une base de données comme MySQL utilise `(BackQuotes, vous devez également définir les propriétés de début dedilimiter et enddeliter du contexte) 15, DelimitallColumns: Définissez si tous les noms de colonne générés dans SQL sont causés par des identifiants. DemiditIdentifiants se réfèrent à la propriété du contexte. Notez que de nombreux paramètres dans le tableau sont une réécriture des propriétés par défaut de JavamodelGenerator, du contexte et d'autres éléments; -> <table tablename = "userInfo"> <! - Référence à la propriété basée sur le constructeur de javamodelGenerator -> <propriété name = "Constructor-basased" value = "false" /> <! - Default est faux. Si elle est définie sur true, le nom de la table ne sera pas ajouté avec le catalogue ou le schéma dans le SQL généré; -> <propriété name = "ignorequalifiersaTruntime" value = "false" /> <! - référence javamodelGenerator la propriété immuable de la propriété immuable -> <propriété name = "immuable" value = "false" /> <! - Spécifie s'il faut générer uniquement la classe de domaine. S'il est défini sur true, seule la classe de domaine est générée. Si le sqlmapGenerator est également configuré, alors dans le fichier mappeur xml, seul l'élément de résultat est généré -> <propriété name = "ModeLoLly value =" false "/> <! - Reportez-vous à la propriété rootclass de la valeur JavamodeLenerator <propriété =" rootclass " Value = "" /> -> <! - Reportez-vous à la propriété rootInterface du javaclientGenerator <propriété name = "rootInterface" value = "" /> -> <! - Si runtimecatalog est défini, puis dans le SQL généré, le catalogue spécifié est utilisé à la place du catalogue sur l'élément de table. <propriété name = "runtimecatalog" value = "" /> -> <! - Si runtimeschema est défini, alors dans le SQL généré, le schéma spécifié est utilisé à la place du schéma sur l'élément de table. <propriété name = "runtimeschema" value = "" /> -> <! - Si runtimeTableName est défini, alors dans le SQL généré, le nom de table spécifié est utilisé à la place de l'élément de table. <propriété name = "runtimeTableName" value = "" /> -> <! - Notez que cette propriété n'est utile que pour mybatis3sImple; Si l'exécution sélectionnée est MyBatis3Simple, une méthode SelectAll sera générée. Si selectAllOrderByClause est spécifié, la condition de commande spécifiée sera ajoutée au SQL; -> <propriété name = "selectallOrderByClause" value = "Age Desc, nom d'utilisateur ASC" /> <! - Si défini sur true, la classe de modèle générée utilisera directement le nom de la colonne elle-même, et n'utilisera plus de méthodes de nomm générer une méthode pour générer une clé primaire. Si cet élément est défini, le MBG générera un élément <lectReyKey> correct dans l'élément <insert> généré. L'élément peut être sélectionné Colonne: le nom de la colonne de la clé primaire; SQLStatement: L'énoncé SelectKey à générer a les options suivantes: Cloudscape: Le SQL équivalent à SelectKey est: Valeurs Identity_Val_Local () () DB2: Le SQL équivalent à SelectKey est: les valeurs Identity_Val_Local (SELECT Identity_Val_) Sysibm.sysdummy1derby: le sql équivalent à selectKey est: valeurs identity_val_local () hsqldb: le sql équivalent à selectKey est: appelez identité () informrix: le sql équivalent à selectKe selectKey est: select last_insert_id () sqlServer: le sql équivalent à selectKey est: select scope_identity () sybase: le sql équivalent à selectKey est: select @@ identityjdbc: il est équivalent à l'ajout de usure engeneratedkeys = " sqlstatement = "" /> -> <! - Cet élément renommera le nom de la colonne avant de calculer le nom d'attribut d'objet en fonction du nom de la colonne dans la table. Il est très adapté au moment où les colonnes du tableau ont des chaînes de préfixe communes, telles que le nom de la colonne: Cust_id, Cust_name, Cust_email, Cust_Address, etc.; Ensuite, vous pouvez définir la recherche sur "^ cust_" et la remplacer par un espace vide. Ensuite, le nom d'attribut dans l'objet client généré n'est pas Custid, Cu stname, etc., mais est remplacé par ID, nom, e-mail, puis devient attributs: id, nom, e-mail; Notez que MBG utilise java.util.regex.matcher.replaceALL pour remplacer la recherche et la remplacement. Si l'élément ColumnOverride est utilisé, cet attribut n'est pas valide; <ColumnRenamingRule SearchString = "" RemplaceString = "" /> -> <! - Utilisé pour modifier les propriétés d'une colonne dans le tableau. MBG utilisera la colonne modifiée pour générer les propriétés du domaine; colonne: le nom de la colonne à réinitialiser; Notez qu'il peut y avoir plusieurs éléments ColumnOverride dans un élément de table ~ -> <ColumnOverride Column = "Username"> <! - Utilisez l'attribut de propriété pour spécifier le nom d'attribut pour générer la colonne -> <propriété Name = "Property" Value = "Userred" /> <! - Javatype est utilisé pour spécifier le type d'attribut du domaine généré et le nom entièrement qualifié du type du type. <propriété name = "javatype" value = "" /> -> <! - JdbcType est utilisé pour spécifier le type jdbc de la colonne <propriété name = "jdbcType" value = "" /> -> <! - TypeHandler est utilisé pour spécifier le type de type utilisé dans cette colonne. Si vous souhaitez spécifier, veuillez noter que dans mybatis, le type Handler dans mybatis-config.xml ne sera pas généré dans mybatis-config.xml, seule la description des paramètres de ce qui suit: où id = # {id, jdbcType = bigInt, typehandler = com._520it.mybatis.mytype name = "jdbcType" value = "" /> -> <! - Reportez-vous à la configuration DelimitAllColumns de l'élément de table, par défaut est faux <propriété name = "DelimitedColumnname" Value = "" /> -> </ ColumnOverride> <! - IgnoreColumn définit une colonne que MGB ignore. Si une refonte est définie, alors dans le domaine généré et SQL généré, colonne: spécifie le nom de la colonne à ignorer; DelimitedColumnName: reportez-vous à la configuration DemitAllColumns de l'élément de table, la valeur par défaut est fausse. Notez qu'il peut y avoir plusieurs éléments IgnoreColumn dans un élément de table <IgnoreColumn Column = "Deptid" DelimitedColumnname = "" /> -> </ Table> </ Context> </ GeneratorConfiguration>Ce qui précède est l'explication détaillée du fichier de configuration le plus parfait du générateur MyBatis qui vous est présenté par l'éditeur (version complète). J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!