generator插件编写可以参考 http://mbg.cndocs.tk/reference/plugins.html
下面以修改生成的Mapper文件为以Dao为后缀为例
package bestree.mybatis;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.internal.util.StringUtility;
import org.mybatis.generator.internal.util.messages.Messages;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 用于命名mybatis生成的Mapper类以Dao为后缀
* Created by bestree on 2016/3/8.
*/
public class MyBatisRenameMapper2DaoPlugin extends PluginAdapter
{
private String searchString;
private String replaceString;
private Pattern pattern;
public MyBatisRenameMapper2DaoPlugin() {
}
public boolean validate(List<String> warnings) {
searchString = properties.getProperty("searchString"); //$NON-NLS-1$
replaceString = properties.getProperty("replaceString"); //$NON-NLS-1$
boolean valid = StringUtility.stringHasValue(searchString)
&& StringUtility.stringHasValue(replaceString);
if (valid) {
pattern = Pattern.compile(searchString);
} else {
if (!StringUtility.stringHasValue(searchString)) {
warnings.add(Messages.getString("ValidationError.18", //$NON-NLS-1$
"RenameExampleClassPlugin", //$NON-NLS-1$
"searchString")); //$NON-NLS-1$
}
if (!StringUtility.stringHasValue(replaceString)) {
warnings.add(Messages.getString("ValidationError.18", //$NON-NLS-1$
"RenameExampleClassPlugin", //$NON-NLS-1$
"replaceString")); //$NON-NLS-1$
}
}
return valid;
}
@Override
public void initialized(IntrospectedTable introspectedTable) {
String oldType = introspectedTable.getMyBatis3JavaMapperType();
Matcher matcher = pattern.matcher(oldType);
oldType = matcher.replaceAll(replaceString);
introspectedTable.setMyBatis3JavaMapperType(oldType);
}
}
创建maven工程包含上面的类,同时在配置mybatis generator插件的工程中加上这个工程做为插件依赖。在generatorConfig.xml中配置
<plugin type="bestree.mybatis.MyBatisRenameMapper2DaoPlugin">
<property name="searchString" value="Mapper"/>
<property name="replaceString" value="Dao"/>
</plugin>