修改myBatis Generator原始碼

m53469發表於2021-09-09

找到org.mybatis.generator.api.IntrospectedTable.java 類;

一. 修改*mapping.xml配置檔案中的各類id名稱

找到 calculateXmlAttributes() 方法,修改對應的id名稱為你要定義的名稱即可.

二. 修改DAO類名

找到 calculateJavaClientAttributes() 方法,對方法中所有fullyQualifiedTable.getDomainObjectName()返回的結果進行處理即可修改DAO字尾名找到 setMyBatis3JavaMapperType這一句,修改上面sb.append("DAO")中的DAO為你想要的字尾名即可

三. 修改Bean類名

找到 calculateModelAttributes() 方法,對方法中所有fullyQualifiedTable.getDomainObjectName()返回的結果進行處理即可

四. 修改*Mapper.xml中namespace對應的實體類的名稱

找到 calculateMyBatis3FallbackSqlMapNamespace()方法,對方法中所有fullyQualifiedTable.getDomainObjectName()返回的結果進行處理即可

五. 修改*Mapping.xml檔案的名稱

找到 calculateMyBatis3XmlMapperFileName() 方法,對方法中所有fullyQualifiedTable.getDomainObjectName()返回的結果進行處理即可

六. 去掉*Mapping檔案中的resultMap節點

找到  org.mybatis.generator.codegen.mybatis3.xmlmapper.elements.ResultMapWithoutBLOBsElementGenerator.java 類,將方法addElements()中的所有程式碼進行遮蔽org.mybatis.generator.codegen.mybatis3.xmlmapper.elements

七.  修改*Mapping檔案中的resultMap節點屬性為resultType

找到org.mybatis.generator.codegen.mybatis3.xmlmapper.elements.SelectByPrimaryKeyElementGenerator類,修改方法addElements()中的所有resultType為resultMap

八.   修改java類檔案中的import引用

找到org.mybatis.generator.api.dom.OutputUtilities類,修改方法calculateImports()

九.   修改dao繼承指定類

找到org.mybatis.generator.api.dom.java.Interface類,修改方法getFormattedContent(),在sb.append(" {")之前新增你要繼承的類注:以上全部,如果返回的是java.util.Map,則這裡所有的修改都是以捨棄實體類為前提的

十.    指定Mapping檔案中的生成哪些sql

找到org.mybatis.generator.codegen.mybatis3.xmlmapper.XMLMapperGenerator.java類中的getSqlMapElement()方法,遮蔽不想生成的sql即可,如:addUpdateByPrimaryKeySelectiveElement(answer);    //updateByPrimaryKeySelective

十一.    指定Dao檔案中的生成哪些method

找到org.mybatis.generator.codegen.mybatis3.javamapper.JavaMapperGenerator.java類中的getCompilationUnits()方法,遮蔽不想生成的sql即可,如:addUpdateByPrimaryKeyWithoutBLOBsMethod(interfaze);    //updateByPrimaryKey

十二.     修改Dao中method的引數預設名稱

全域性搜尋method.addParameter(new Parameter(parameterType, "record")); 字串,批次替換"record"為自己想要的定義的名稱即可,如替換成和實體類檔名相同但首字母小寫:method.addParameter(new Parameter(parameterType,StringUtil.toLowerCaseFirstOne(parameterType.getShortName())));//StringUtil.toLowerCaseFirstOne(String str) 是把第一個字元轉換成小寫,然後引用相關的包即可

十三.     Dao中新增method

org.mybatis.generator.codegen.mybatis3.javamapper.elements 包下面隨便找一個檔案,編寫你要新增的方法(可以直接參考addInterfaceElements方法中的內容),然後從addInterfaceElements(Interface interfaze) 方法中進行呼叫即可

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2817558/,如需轉載,請註明出處,否則將追究法律責任。

相關文章