MyBatisGenerator生成文件自定义名字-MBG扩展

可设置Mapper后缀为任意名如(DeptDao)

一个例子

上面的配置会生成

  • bean.emp.Dept
  • bean.emp.DeptQuery(用到MBG提供的插件,下面贴出)
  • dao.emp.DeptDao
  • dao.emp.DeptDao.xml

在MBG1.3.4之后添加了mapperName属性,能够指定生成Mapper的名字和指定的包名,看着方便但是如果数据库中的表有几百张,都要手配可就麻烦了。

mybatis可以使用通配符进行全表的逆向生成

但是此时mapperName的属性就失效了,但需求是仍然按指定名字生成那该怎么办呢?

在借鉴了

isea533 的 MyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀这篇博文 &&
一枝花算不算浪漫 的 Mybatis逆向工程构建项目实例.
两篇原创博文后对插件代码进行了修改。
更后的配置形式

{0}进行补位,填充的值是MBG根据表明自动生成的对象名。
如:扫描到的表名是emp则会生成Emp。将Emp吧{0}替换掉。

代码解释

更改生成文件名的插件配置。

      
          
            
            
            
          
                
          
            
            
          

                
          
            
            
          

替换{0}的文件

targetRunteim详细说名见isea533 的 MyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀,我说不清楚

isea533的TkMyBatis3Impl需要指定{0}Dao的形式但是,上面的插件中已经提供了将Mapper改名为Dao的形式,要自定义的后坠是通过
RenameSqlMapperPlugin,RenameJavaMapperPlugin这两个插件进行
配置的,通过查看TkMyBatis3Impl中 {0}占位符替换的实现发现,他是直接将mapperName属性的值取出来直接把{0}替换成TableName,所以现在的文件名是TableNameDao形式。而在RenameSqlMapperPlugin中是通过检查生成的文件名是否带有Mapper关键字,将Mapper关键字替换为在配置文件中写的Dao。要说明一下RenameSqlMapperPlugin是在TkMyBatis3Impl之后被调用的,所以要想让RenameSqlMapperPlugin需要在TkMyBatis3Impl生成的Mapper名字后面追加Mapper字串。

完整代码

你可能感兴趣的:(mybatis)