修改myBatis Generator源碼
阿新 • • 發佈:2018-08-10
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源碼