1. 程式人生 > >修改myBatis Generator源碼

修改myBatis Generator源碼

pin sel mode param ted 參考 attribute ava 指定

找到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) 方法中
進行調用即可

修改myBatis Generator源碼