Cómo modificar los bytes tinyint del generador mybatis
addJavaFileComment(unidad de compilación CompilationUnit)
Agrega un comentario al archivo Java, que se encuentra en la parte superior del archivo, encima del paquete.
addComment(XmlElement xmlElement)
Agrega comentarios al archivo XML generado. Elephant no generará anotaciones después de borrar este método.
addClassComment(InnerClass InnerClass, IntrospectedTable introspectedTable)
Agrega un comentario a una clase Java.
Tenga en cuenta que el atributo de comentarios del método getRemarks() en la línea roja no existe en la FullyQualifiedTable original. Fue agregado por el propio Elephant para guardar la información de los comentarios de la tabla. ¿Dónde se añadió? Eche un vistazo a la clase org.mybatis.generator.internal.db.DatabaseIntrospector. Después de un vistazo rápido, encontrará que la lectura de información y la configuración de tipos de las tablas y columnas de la base de datos se encuentran en la fila. 608, que resulta estar vacía. Línea para insertar algunas líneas de código. Como se muestra a continuación:
Entonces hemos obtenido la información de anotación de la tabla. Deberías entenderlo cuando veas esto, ¿verdad?
Además, debo explicar que usar la base de datosMetaData.getTables() para obtener anotaciones de tablas es inútil. Elephant ya lo ha probado en el conjunto de resultados "OBSERVACIONES") y devuelve un valor vacío. cuerda, nada. Y el elefante también quiere quejarse. Mucha gente en Internet dice que el valor de retorno de este conjunto de resultados es de 10 columnas, jaja, ¿verdad? Depuré durante mucho tiempo y descubrí que todavía hay solo 5 columnas. No sé de dónde vienen estas 10 columnas. Imprima las 10 columnas y dígame qué hacer. El controlador mysql que uso es 5.1.29.
addFieldComment(campo de campo, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn)
Comentario de propiedad Java. No se agregará una anotación vacía a la propiedad.
addGetterComment(Método método, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn)
Agrega un comentario para el método get. El método para agregar comentarios aquí es el mismo que el de Field. Elephant ha dejado vacíos este método y el método addSetterComment, porque estoy más acostumbrado a agregar comentarios a las propiedades. Si está acostumbrado a cambiar los comentarios en el método getter. Puedes cambiarlo tú mismo.
Después de completar estos cambios, recuerde agregar el siguiente código en la línea 61 de org.mybatis.generator.codegen.mybatis3.model.BaseRecordGenerator:
commentGenerator.addClassComment(topLevelClass, introspectedTable );
Porque no hay anotaciones de clase en el código fuente de mybatis-generator.
La empresa de cada persona es diferente y sus requisitos son definitivamente diferentes. Elephant no puede satisfacer a todos y solo puede modificar la clase hasta cierto punto. Lo usaremos como ejemplo de plantilla, principalmente para entender cómo modificarla.
mybatis-generator ha modificado el espacio de nombres xml generado en la versión 1.3.2. Ya no usa el nombre de la tabla como valor del espacio de nombres, pero usa el sufijo Mapper del nombre de la clase de estructura del paquete para configurarlo. No me gusta un método tan complicado, por lo que debemos cambiarlo aquí y solo conservar el nombre de la clase Mapper. Por lo tanto, debemos cambiarlo aquí y conservar solo la forma de denominación del nombre de la clase Mapper. Elimine las líneas 907 y 908 de la clase org.mybatis.generator.api.IntrospectedTable.
A continuación, hablemos sobre el procesamiento de tipos de objetos grandes. Mybatis-generator utilizará todos los tipos jdbc de forma predeterminada: BINARY, BLOB, CLOB, LONGVARBINARY, LONGVARCHAR, VARBINARY. se genera el efecto reflejado. Habrá un nombre de clase adicional en el archivo WithBLOBs.java en la clase pojo (el número de objetos grandes incluidos es mayor que 1) y se agregará una identificación al XML para ResultMapWithBLOBs resultMap, que hereda de BaseResultMap. A Elephant siempre le gusta el estilo conciso, así que esto es demasiado antiestético. Si cree que no importa y no es necesario modificarlo, omita este párrafo y siga leyendo.
Los tipos como texto o blob en la tabla se recuperan mediante la base de datosMetaData.getColumns(), y su valor rs.getInt("DATA_TYPE") corresponde a java.sql.Types.
Valor del tipo de texto: Types.LONGVARCHAR
El valor del tipo blob es:
Utiliza org.mybatis.generator.internal.types.JavaTypeResolver.Types .LONGVARBINARIO