No he realizado un proyecto recientemente, así que he reorganizado el archivo de configuración más completo para el generador mybatis más completo (MBG para abreviar), con explicaciones detalladas, y ya no tengo que mirar la guía del usuario de EN;
<? xml versión = "1.0" encoding = "utf-8"?> <! DOCTYPE GeneratorConfigurationPublic "-// mybatis.org//dtd MyBatis Generator Configuración 1.0 // en" "http://mybatis.org/dtd/mybatis-Generator-config_1_0.dttdtd" <! Generador-> <GeneratorConfiguration> <!-Se puede usar para cargar elementos de configuración o archivos de configuración. En todo el archivo de configuración, puede usar $ {PropertyKey} para hacer referencia al elemento de configuración Resource: Configurar la dirección de carga de recursos, usar recursos y MBG comienza desde classpath, como com/myproject/generatorConfig.Properties URL: Configurar geología de carga de recursos, use URL, como el archivo: ///////c:/myfoldenfolderatorConfig.propertyfig. Tenga en cuenta que solo se puede seleccionar una de las dos propiedades; Además, si se usa myBatis-Generator-Maven-Plugin, entonces las propiedades definidas en pom.xml se pueden usar directamente en GeneratorConfig.xml <Properties Resource = "" Url = ""/>-> <! Archivos/IBM/SQLLIB/JAVA/DB2JAVA.ZIP "/>-> <!-Contexto: el ID de entorno para generar un grupo de objetos: requerido, ID de contexto, utilizado para indicar al generar un error predeterminado Modelype: especifique el estilo del objeto generado 1, condicional: similar a jerarquical; 2, plano: todo el contenido (clave primaria, blob), etc. se generan en un objeto; 3, jerárquico: la clave principal genera un objeto XXKEK (clase clave), blob, etc., genera un objeto por separado, y otros atributos simples están en un objeto (clase de registro) TargetRuntime: 1, myBatis3: el valor predeterminado, genera contenido basado en myBatis3.x y versiones anteriores, incluidas xxxBysample; 2, mybatis3Simple: similar a mybatis3, pero no genera xxxbysample; Introducido COLUMNMUMPL: El nombre totalmente calificado de la clase, utilizado para extender MBG-> <context id = "mysql" defaultModelType = "jerárquico" targetruntime = "mybatis3simple"> < Generalmente, conserve las palabras clave de la base de datos de valor predeterminada de valor predeterminado (palabras clave java), use columnOverRide para anular-> <propiedad name = "autodeLimitKeywords" value = "false"/> <!-Codificación de archivos Java generados-> <Property Name = "JavaFileCoding" Value = "Utf-8"/> <!-Format Java Code-> <Code de propiedad de propiedad. value = "org.mybatis.generator.api.dom.defaultJavAformatter"/> <!-format xml código-> <propiedad name = "xmlformatter" value = "org.mybatis.generator.api.dom.defaultMlFormatterter"/> <!-iniciando elimitré y finalización: especifica el symbols symBOly. Por ejemplo, Oracle es cotizaciones dobles, y MySQL predeterminada a `Backticks; -> <Property name = "StartleDelimiter" value = "` "/> <Property Name =" EndDelimiter "value =" `"/> <!-Debe tenerla, usar esta configuración para vincular la base de datos @todo: se puede extender-> <jdbcconnection driverClass = "com.mysql.jdbc.dbc.debc.debc.river" userId = "root" contraseña = "admin"> <!-Aquí puede establecer propiedades de propiedad, y cada propiedad de propiedad se establece en el controlador configurado-> </jdbcconnection> <!-El procesador de tipo Java se usa para procesar tipos en DB a tipos en Java, y JavatyPeresolverDefaultiMpl se utiliza por defecto; Tenga en cuenta que de forma predeterminada, intentará usar entero, largo, corto, etc. para corresponder a tipos de datos decimales y numéricos; -> <javatyperesolver type = "org.mybatis.generator.internal.types.javatyperesolverDefaultImpl"> <!-true: use bigDecimal para tipos de datos decimales y numéricos falsos: predeterminado, escala> 0; longitud> 18: use bigdecimal; escala = 0; duración [10,18]: use largo; escala = 0; longitud [5,9]: use entero; escala = 0; longitud <5: usar breve; -> <Property name = "ForceBigDecimals" value = "false"/> </javatyperesolver> <!-El creador del modelo Java es los elementos necesarios responsables: 1. Clase clave (consulte el modelador predeterminado del contexto); 2. Clase Java; 3. TargetProject: el proyecto de destino, especifique un directorio existente y el contenido generado se colocará en el directorio especificado. Si el directorio no existe, MBG no creará automáticamente un directorio-> <javaModelGenerator TargetPackage = "com._520it.mybatis.domain" TargetProject = "src/main/java"> <!-Para mybatis3/mybatis3Simple crea automáticamente una construcción para cada clase generada, que contiene todo; En lugar de usar setters; -> <propiedad name = "constructorBased" value = "false"/> <!-Según el TargetPackage, se genera una capa de paquete de acuerdo con el esquema de la base de datos. La clase final generada se coloca en este paquete, y el valor predeterminado es falso-> <propiedad name = "habilsubpackages" value = "true"/> <!-para mybatis3/mybatis3simple crea una clase inmutable? Si es verdadero, MBG creará una clase sin un método Setter y la reemplazará con una clase similar a ConstructorBased-> <Property Name = "Immutable" Value = "False"/> <!-Establezca un objeto root. Si se establece este objeto raíz, la clase de teclas generada o la clase de registro heredará esta clase; Esta opción se puede anular en la propiedad RootClass de la tabla Nota: Si hay los mismos atributos que la clase raíz en la clase de clave o la clase de registro, MBG no regenerará estos atributos, incluidos: 1. El nombre del atributo es el mismo, el mismo tipo y el mismo método de Getter/Setter; -> <Property name = "rootclass" value = "com._520it.mybatis.domain.basedomain"/> <!-Establezca si a llamar al método TRIM () en el campo Tipo de cadena en el método Getter-> <Property Name = "Trimstrings" Value = "True"/> </javaModelGenerator> <!-Generador de archivos XML para generar sql maps. Tenga en cuenta que después de myBATIS3, podemos usar la interfaz mapper.xml de archivo + mapper (o no usar la interfaz mapper), o solo usar la interfaz mapper + anotación. Therefore, if the javaClientGenerator configuration needs to generate XML, this element must be configured with targetPackage/targetProject: same as javaModelGenerator--><sqlMapGenerator targetPackage="com._520it.mybatis.mapper" targetProject="src/main/resources"><!-- Based on the targetPackage, a layer of package is generated according al esquema de la base de datos. La clase final generada se coloca en este paquete, y el valor predeterminado es falso-> <propiedad name = "habilsubpackages" value = "true"/> </sqlmapGenerator> <!-Para mybatis, es generar una interfaz mapper. Note that if the element is not configured, the mapper interface will not be generated by default targetPackage/targetProject: same as javaModelGeneratortype: Choose how to generate a mapper interface (under MyBatis3/MyBatis3Simple): 1. ANNOTATEDMAPPER: It will generate a mapper interface using Mapper interface + Annotation (SQL generated in a In nnotation), the corresponding XML no se generará; 2. MixedMapper: usando una configuración híbrida, se generará la interfaz mapeador y la anotación apropiada se agregará adecuadamente, pero el XML se generará en XML; 3. XMLMapper: se generará la interfaz mapper y la interfaz dependerá completamente de XML; Tenga en cuenta que si el contexto es mybatis3Simple: solo anotadoMapper y xmlmapper-> <javaclientGenerator TargetPackage = "com._520it.mybatis.mapper" type = "annotatedMapper" TargetProject = "Src/main/java"> <!-basado en el objetivo de la capa, una capa de paquete es generada a la base de la base de la base de la base de la capa. La clase final generada se coloca en este paquete, que es predeterminada a FALSE-> <Property name = "habilsubpackages" value = "true"/> <!-puede agregar una interfaz principal a todas las interfaces generadas, pero MBG solo es responsable de la generación y no es responsable de verificar <name de propiedad = "Value" Value = "/>-> </javaclientGenerator> <! Seleccione una tabla de comprobación. Puede haber una o más tablas. Debe haber una tabla seleccionada por el elemento de tabla. Se generarán los siguientes archivos: 1. Archivo de mapa SQL 2. Generar una clase de clave primaria; 3. Clases con otros campos, excepto BLOB y la clave primaria; 4. Clases que contienen Blob; 5. Una clase condicional para que los usuarios generen consultas dinámicas (selectByExample, DeleteByExample), opcional; 6. Interfaz de mapper (opcional) Tablename (necesario): el nombre de la tabla del objeto a generar; Nota: problemas sensibles a los casos. En circunstancias normales, MBG identificará automáticamente la sensibilidad del caso del identificador de la base de datos. En general, MBG consultará la tabla de datos basada en el esquema establecido, el catálogo o el nombre de la tabla, y seguirá el siguiente proceso: 1. Si hay espacios en el esquema, catálogo o nombre de tabla, entonces el conjunto de formato se usa con precisión para consultar; 2. De lo contrario, si el identificador de la base de datos está capitalizado, entonces MBG convertirá automáticamente el nombre de la tabla en capital y luego buscará; 3. De lo contrario, si el identificador de la base de datos está capitalizado, entonces MBG convertirá automáticamente el nombre de la tabla en capital y luego buscará; Buscar; 4. De lo contrario, use el formato de caso especificado para consultar; Además, si el objeto de la base de datos se usa al crear una tabla, el nombre de la tabla se creará utilizando el caso dado incluso si el identificador de la base de datos se usa, en este caso, establece el DelimitIdentifiers = "True" para retener el formato de caso; Opcionalmente: 1. Esquema: el esquema de la base de datos; 2. Catálogo: el catálogo de la base de datos; 3. Alias: el alias establecido para la tabla de datos. Si se establece el alias, entonces todas las selecciones generadas en las declaraciones SQL, el nombre de la columna se convertirá en: alias_actualcolumnname4, domainObjectName: el nombre de la clase de dominio generada. Si no se establece, use el nombre de la tabla como el nombre de la clase de dominio; Se puede configurar en SomePCK.DomainName, entonces la clase DomainName se colocará automáticamente en el paquete SomePCK; 5, enableInsert (predeterminado verdadero): especifique si se debe generar la instrucción Insertar; 6, habilselectByPrimaryKey (predeterminado verdadero): especifique si se genera la declaración para consultar el objeto de acuerdo con la clave primaria (es decir, GetByid o Get); 7. HabilsEllectByExample (predeterminado verdadero): myBatis3Simple es falso, especificando si generar declaraciones de consulta dinámica; 8. EnableUpdateByPrimaryKey (predeterminado verdadero): especificando si generar una declaración que modifica el objeto de acuerdo con la clave principal (es decir, actualización); 9. EndableLeteByPrimaryKey (predeterminado verdadero): especificando si se debe generar una declaración que elimine el objeto de acuerdo con la clave primaria (es decir, Delete); 10. Actableel EteByExample (predeterminado verdadero): myBatis3Simple es falso, especifique si se debe generar declaraciones de eliminación dinámica; 11, EnableCountByExample (predeterminado verdadero): MyBatis3Simple es falso, especifique si se debe generar una consulta dinámica número total de palabras (utilizadas para el número total de palabras para la paginación); 12, EnableUpdateByExample (verdadero verdadero): myBatis3Simple es falso, especifique si se generan declaraciones de modificación dinámica (solo modifique los atributos que no están vacíos en el objeto); 13, ModelTyp E: consulte el modelador predeterminado del elemento de contexto, que es equivalente a la sobrescritura; 14, DelimitIdentificadores: consulte la explicación de TableName, tenga en cuenta que los identificadores delimitados predeterminados son cotizaciones dobles. Si una base de datos como MySQL usa `(BackQuotes, entonces también debe establecer el Delimitador inicial del contexto y las propiedades de Endelimiter) 15, DelimitallColumns: Establezca si todos los nombres de columnas generados en SQL son causados por identificadores. DelimitIdentificadores se refieren a la propiedad del contexto. Tenga en cuenta que muchos parámetros en la tabla son una reescritura de las propiedades predeterminadas de JavamodelGenerator, contexto y otros elementos; -> <table TableName = "UserInfo"> <!-Referencia a la propiedad basada en Constructor de JavaModelGenerator-> <Property Name = "ConstructorBased" Value = "False"/> <!-El valor predeterminado es falso. Si se establece en True, el nombre de la tabla no se agregará con catálogo o esquema en el SQL generado; -> <Property name = "IgnoreQualifiersatrUntime" value = "false"/> <!-Reference JavaModelGenerator La propiedad inmutable de la propiedad inmutable-> <propiedad name = "inmutable" valor = "false"/> <!-Especifica si solo generar solo la clase de dominio. Si se establece en True, solo se genera la clase de dominio. Si el SQLMAPGenerator también está configurado, entonces en el archivo MAPPER XML, solo se genera el elemento ResultMap-> <Property name = "modelonly" value = "false"/> <!-Consulte la propiedad RootClass de la propiedad JavaModelGenerator <Property Name = "Value" Value = "/"/>-> <!--Propiedad de la propiedad de Interface de JavaModeRatorMeator. valor = ""/>-> <!-Consulte la propiedad RootInterface de JavaclientGenerator <Property Name = "RootInterface" Value = ""/>-> <!-Si RunTimecatalog se establece, luego en el SQL generado, el catálogo especificado se usa en lugar del catálogo en el elemento de tabla. <propiedad name = "runtimeCatalog" value = ""/>-> <!-Si se establece RunTimesChema, luego en el SQL generado, el esquema especificado se usa en lugar del esquema en el elemento de tabla. <Property name = "runTimesChema" value = ""/>-> <!-Si RunTimetableName se establece, luego en el SQL generado, el nombre de tabla especificado se usa en lugar del elemento de tabla. <propiedad name = "runtimeTableName" value = ""/>-> <!-Tenga en cuenta que esta propiedad solo es útil para myBatis3Simple; Si el tiempo de ejecución seleccionado es myBatis3Simple, se generará un método SelectALL. Si se especifica selectallerByClause, la condición de orden especificada se agregará al SQL; -> <Property name = "selectAlLOrderByClause" value = "Age Desc, UserName ASC"/> <!-Si se establece en True, la clase de modelo generado usará directamente el nombre de la columna en sí, y ya no usará métodos de nombres de camello, como Born_Date, y el nombre de propiedad generado es Born_Date, no Born KeyDate-> <Nombre de propiedad = "UseAttualColumnumnumnumnumnumnnmumnumnnamumnnames" Value = "/" False "/" Falso ". Genere un método para generar una clave primaria. Si este elemento está configurado, el MBG generará un elemento CORRECTO <SelectKey> en el elemento <sert> generado. El elemento se puede seleccionar columna: el nombre de la columna de la clave primaria; sqlStatement: la instrucción selectKey que se generará tiene las siguientes opciones: Cloudscape: el equivalente de SQL a selectKey es: valores identity_val_local () () db2: el equivalente de SQL equivalente a selectKey: valores identity_val_local () () db2_mf: el equivalente sql a select seltey es: select Identity_val () () () Sysibm.sysdummy1derby: el equivalente SQL a selectKey es: valores identity_val_local () hsqldb: el equivalente de SQL a selectKey es: llamar identidad () informix: el equivalente de SQL a selectKey es: seleccionar dbinfo ('sqlca.sqlerrd1') de systables donde Tabid = 1MysQl SelectKey es: seleccione last_insert_id () sqlserver: el equivalente SQL a selectKey es: seleccione scope_identity () sybase: el SQL equivalente a selectKey es: seleccionar @@ IdentityJDBC: es equivalente a agregar UseGeneratedKeys = "true" y atributos de KeyPerty en el elemento de inserción generado <columna de tecla generada = "" "" sqlStatement = ""/>-> <!-Este elemento cambiará el nombre del nombre de la columna antes de calcular el nombre del atributo del objeto basado en el nombre de la columna en la tabla. Es muy adecuado para cuando las columnas en la tabla tienen cadenas de prefijo comunes, como el nombre de la columna: cust_id, cust_name, cust_email, cust_address, etc.; Luego puede establecer la búsqueda en "^cust_" y reemplazarlo con espacio en blanco. Luego, el nombre del atributo en el objeto del cliente generado no es Custid, Cu stname, etc., pero se reemplaza con ID, nombre, correo electrónico y luego se convierte en atributos: ID, nombre, correo electrónico; Tenga en cuenta que MBG usa java.util.regex.matcher.replacealll para reemplazar Searchstring y Reemplazar. Si se usa el elemento columnverride, este atributo no es válido; <ColumnRenamEnverRule SearchString = "" Reemplazo = ""/>-> <!-Se usa para modificar las propiedades de una columna en la tabla. MBG utilizará la columna modificada para generar las propiedades del dominio; Columna: el nombre de la columna se restablecerá; Tenga en cuenta que puede haber múltiples elementos de columnaverride en un elemento de tabla ~-> <columnRide columna = "username"> <!-Use el atributo de propiedad para especificar el nombre de atributo para generar la columna-> <propiedad de propiedad = "propiedad" value = "username"/> <!-Javatype se usa para especificar el tipo de atributo del dominio generado y el nombre completamente calificado del tipo se usa. <Property name = "javatype" value = ""/>-> <!-JDBCType se usa para especificar el tipo JDBC de la columna <Propiedad Name = "JDBCType" Value = "/>-> <!-TypeHandler se usa para especificar el TypeHandler utilizado en esta columna. If you want to specify, please note that in mybatis, the typeHandler in mybatis-config.xml will not be generated in mybatis-config.xml, only the parameter description of the following: where id = #{id,jdbcType=BIGINT,typeHandler=com._520it.mybatis.MyTypeHandler}<property name = "jdbctype" value = ""/>-> <!-Consulte la configuración delimitallcolumns del elemento de tabla, predeterminado es falso <name de propiedad = "delimitedColumnName" value = ""/>-> </columnOverride> <!-Ignorecolumn establece una columna que MGB ignora. Si se establece una recolumno, entonces en el dominio generado y SQL generado, columna: Especifica el nombre de la columna a ignorar; DelimitedColumnName: consulte la configuración de DelimitallColumns del elemento de tabla, el valor predeterminado es falso. Tenga en cuenta que puede haber múltiples elementos Ignorecolumn en un elemento de tabla <Ignorecolumn columna = "Deptid" DelimitedColumnName = ""/>-> </table> </textis> </GeneratorConfiguration>Lo anterior es la explicación detallada del archivo de configuración más perfecto del generador MyBatis presentada por el editor (versión completa). Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!