spawpaw / mybatis-generator-gui-extension

图形化MBG,内置丰富插件,可生成Service、Controller、View,配置简单。 A powerful GUI tool for MyBatisGenerator(MBG)
Other
642 stars 233 forks source link

功能建议 #21

Closed wangjia2016 closed 6 years ago

wangjia2016 commented 6 years ago

I'm submitting a...

Expected behavior

1、建议能批量生成,选择需要的表 2、顺便生成service、serviceImpl、dao、daoImpl 生成的entity 上面的注释可以取数据库里面的注释 3、去掉example类 4、生成的xml里面包含常用的查询,以及包含where 那一大堆条件查询

spawpaw commented 6 years ago

关于批量生成 批量生成是有的,点击生成按钮旁边的小箭头就可以看到了。 目前没有选择部分表进行批量生成的功能,因为本项目支持xml文件和java文件的合并,也就是说,你在生成的文件里添加的方法和字段在下一次生成的时候是会保留的(当然你把自动生成的方法/字段注释中的@mbg.generated去掉也会导致在下次生成时保留),这也是目前其他MBG工具所没有的功能。所以重新生成的时候直接放心大胆的全部重新生成就好了,你之前的代码还会保留(注意需要开启注释插件和合并文件的功能)

关于其他层代码的生成 service和其他层的代码,因为大家的需求各不相同,所以作者也不好直接决定以什么样的方式生成。所以只是在src/main/resources/template目录下放了几个示例模版,如果有需要的话可以自行编写模版(模版引擎用的是velocity,一般直接仿照示例的语法写就好了)。如果你有比较好的模版,可以发起pull request,一起参与本项目的开发

另外,我记得之前Entity上面的注释是从数据库获取的(难道上次改注释生成器的时候我把添加数据库注释的代码删了?呆会我去确认一下)

关于Example的使用 example就是用来做where查询的!比如要查询((用户id大于100, 且password不为空) 或(userid小于100))的用户,直接

UserExample example=new UserExample();
example.or()
      .andUserIdLargerThan(100)
      .andUserNameIsNotNull();
example.or()
      .andUserIdLessThan(100);

List<User> userList=userMapper.selectByExample(example);

建议条件查询直接用Example类就好了,另外如果你是MySQL数据库,而且开启了分页插件,那么直接动过example.setPageInfo(page,pageSize)就可以直接做分页操作了

另外本项目还继承了一系列增强插件,比如Example的流式构建:

List<User> userList=userMapper.selectByExample(
      new UserExample()
              .or.andUserNameEquals("test")
              .example()
);

比如实体类的流式构建:

User user=new User()
         .withUsername("username")
         .withPassword("password");
spawpaw commented 6 years ago

刚刚试了一下,获取数据库表注释和字段的功能是没有问题的

如果要在实体类头上添加注释,在注释->文件头注释中添加${tableComment}即可插入表注释 字段注释默认是开启的。

另外,如果想要使用java文件和xml文件的合并功能,需要开启@mbg.generated