当前位置:   article > 正文

代码生成神器mybatis-plus-generator-ui

mybatis-plus-generator-ui

1、mybatis-plus-generator-ui是什么?

1.1、介绍

它是对mybatis-plus-generator进行封装,通过Web UI快速生成兼容Spring boot,mybatis-plus框架的各类业务代码。提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity、Mapper、Mapper.xml、Service、Controller等,可以自定义模板以及各类输出参数,也可通过SQL查询语句直接生成代码。

1.2、功能列表:

  • 输出配置: 对需要生成的相关代码,比如Entity、Mapper、Servcie、Controller等代码模板信息进行配置,用于在转换时调用。

  • 项目导入: 可以导入其它项目配置好的信息给本项目使用。

  • 下载模板: 支持本项目配置的模板信息下载后共享。

  • 策略配置: 直接定义各种文件的生成策略。

  • 模板上传: 支持从别的项目中下载模板,同上传供本项目使用。

  • SQL输入上传: 支持将查询语句直接上传或者复制到输入框中。

  • SQL代码生成: 基于SQL脚本生成相应的代码。

2、 mybatis-plus-generator-ui怎么用?

mybatis-plus-generator-ui提供以jar包的形式为外部项目提供服务,通过配置的数据库配置去读取数据库的配置信息,并通过Web UI的方式提供给开发者使用。mybatis-plus-generator-ui支持POSTGRE_SQL、ORACLE、DB2、MySQL、SQLSERVER等常见的关系型数据库。

2.1、使用方法:

首先,这个功能是可以直接放在项目中,我这里是直接新建了一个项目。只需要注意版本即可,2.0.0 版本已经支持mybatis-plus 3.5.X

2.1.1、引入maven的相关依赖,只需要写test就可以了
  1. <dependency>
  2. <groupId>com.github.davidfantasy</groupId>
  3. <artifactId>mybatis-plus-generator-ui</artifactId>
  4. <version>2.0.1</version>
  5. <scope>test</scope>
  6. </dependency>
2.1.2、在项目的test目录新建一个启动类,代码示例如下:

这里需要注意的地方有配置自己的数据库,它支持几乎所有的主流数据库,这里我用的是MySql数据库;basePackage是配置生成文件的地址;port是端口号

  1. public class GeneratorMain {
  2. public static void main(String[] args) {
  3. GeneratorConfig config = GeneratorConfig.builder()
  4. .jdbcUrl("jdbc:mysql://localhost:3306/autoapi")
  5. .userName("root")
  6. .password("root")
  7. .driverClassName("com.mysql.cj.jdbc.Driver")
  8. // 数据库schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
  9. // .schemaName("myBusiness")
  10. // 如果需要修改各类生成文件的默认命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法:
  11. .nameConverter(new NameConverter() {
  12. /**
  13. * 自定义Service类文件的名称规则
  14. */
  15. public String serviceNameConvert(String tableName) {
  16. return this.entityNameConvert(tableName) + "Service";
  17. }
  18. /**
  19. * 自定义Controller类文件的名称规则
  20. */
  21. public String controllerNameConvert(String tableName) {
  22. return this.entityNameConvert(tableName) + "Action";
  23. }
  24. }).basePackage("com.example.hello").port(8088).build();
  25. MybatisPlusToolsApplication.run(config);
  26. }
  27. }
2.1.3、运行此main方法

在输出的日志中,可以看端口号,默认模板目录地址。

2.1.4、浏览器中输入地址http://localhost:8088/,然后选择需要的表名,点击代码生成。
2.1.5、这里根据需要选择,没什么需要特别注意的地方,然后点击开始生成即可
2.1.6、生成代码模板如图:

红色圈起来的就是生成的代码,绿色圈起来的需要注意,这是在mapper文件下的UserMapper加上@Mapper注解,或者在启动类加上@MapperScan("mapper文件地址")

2.1.7、接下来启动项目,打开浏览器输入项目地址http://localhost:8066/user/

这里是访问list接口,基本的增删改查接口都是有的

2.2、也可以直接去下载项目源码进行使用:

项目源码:https://github.com/davidfantasy/mybatis-plus-generator-ui

个人推荐使用引用依赖的方式比较简单。

2.3、还可以自定义配置输出

选择相应的文件类型的文件模板下载下来,然后打开根据需要进行修改,修改好了之后点击操作对应的类型,然后选择自己自定义的文件保存,下一次生成的时候生效。

还可以新增一个文件配置好相应的配置,然后保存

2.4、sql代码生成

我们在数据库使用的sql语句和在mapper.xml虽然相似,但是还是有区别的,mapper.xml里面的相对来说要复杂一点,有了这个东西就可以偷懒了,我把它的示例粘过来,

动态sql增强是指将含有mybatis动态参数(#{...})的where条件,转换为mybatis的动态SQL条件,一般用于用户输入条件进行查询的情况,例如:

  1. SELECT
  2. *
  3. FROM
  4. t_order t
  5. LEFT JOIN
  6. t_order_good t1 ON t.id = t1.order_id
  7. WHERE
  8. t.order_code = '#{orderCode}'
  9. AND t.city LIKE '#{city}'
  10. AND t.customer_id IN '#{customerIds}'
  11. AND t.creator = '#{creator}'
  12. AND t.confirm_time BETWEEN '#{startTime}' AND '#{endTime}'

以上的SQL将会被转换为下面的动态SQL,注意 动态参数需要用引号括起来

  1. <!--Author:david,Date:2020-07-14,由mybatis-plus-generator-ui自动生成-->
  2. <select id="selectOrders" resultMap="ExampleDtoMap"> <![CDATA[
  3. SELECT
  4. *
  5. FROM
  6. t_order t
  7. LEFT JOIN
  8. t_order_good t1 ON t.id = t1.order_id
  9. WHERE
  10. 1=1
  11. <if test="orderCode!=null">
  12. AND order_code = #{orderCode}
  13. </if>
  14. <if test="city!=null">
  15. AND city like concat('%',#{city},'%')
  16. </if>
  17. <if test="customerIds!=null">
  18. AND customer_id in
  19. <foreach item="item" collection="#{customerIds}" open="(" separator="," close=")">
  20. #{item}
  21. </foreach>
  22. </if>
  23. <if test="creator!=null">
  24. AND creator = #{creator}
  25. </if>
  26. <if test="startTime!=null">
  27. AND confirm_time between #{startTime} and #{endTime}
  28. </if>
  29. ]]>
  30. </select>

3、总结

对于这个东西,初学者不建议用,而不是初学者基本上也不会用这东西,公司的框架基本上都有更好的代码生成工具,比这更加完善,更加实用,所以说这玩意很尴尬,但是没有生成的项目可以加上,可以节约时间

最后,如有问题,请指正!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/231100
推荐阅读
相关标签
  

闽ICP备14008679号