代码生成神器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、功能列表:

  • Table查询: 查询配置的关系型数据库表的列表查询。

  • 输出配置: 对需要生成的相关代码,比如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就可以了
<dependency>
    <groupId>com.github.davidfantasy</groupId>
    <artifactId>mybatis-plus-generator-ui</artifactId>
    <version>2.0.1</version>
    <scope>test</scope>
</dependency>
2.1.2、在项目的test目录新建一个启动类,代码示例如下:

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

public class GeneratorMain {

    public static void main(String[] args) {
        GeneratorConfig config = GeneratorConfig.builder()
                .jdbcUrl("jdbc:mysql://localhost:3306/autoapi")
                .userName("root")
                .password("root")
                .driverClassName("com.mysql.cj.jdbc.Driver")
                // 数据库schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
                // .schemaName("myBusiness")
                // 如果需要修改各类生成文件的默认命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法:
                .nameConverter(new NameConverter() {
                    /**
                     * 自定义Service类文件的名称规则
                     */
                    public String serviceNameConvert(String tableName) {
                        return this.entityNameConvert(tableName) + "Service";
                    }
                    /**
                     * 自定义Controller类文件的名称规则
                     */
                    public String controllerNameConvert(String tableName) {
                        return this.entityNameConvert(tableName) + "Action";
                    }
                }).basePackage("com.example.hello").port(8088).build();
        MybatisPlusToolsApplication.run(config);
    }
}
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条件,一般用于用户输入条件进行查询的情况,例如:

SELECT 
    *
FROM
    t_order t
        LEFT JOIN
    t_order_good t1 ON t.id = t1.order_id
WHERE
    t.order_code = '#{orderCode}'
        AND t.city LIKE '#{city}'
        AND t.customer_id IN '#{customerIds}'
        AND t.creator = '#{creator}'
        AND t.confirm_time BETWEEN '#{startTime}' AND '#{endTime}'

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

<!--Author:david,Date:2020-07-14,由mybatis-plus-generator-ui自动生成-->
  <select id="selectOrders" resultMap="ExampleDtoMap"> <![CDATA[
      SELECT 
          *
      FROM
          t_order t
              LEFT JOIN
          t_order_good t1 ON t.id = t1.order_id
      WHERE
           1=1 
      <if test="orderCode!=null">
        AND  order_code = #{orderCode}
      </if>
      <if test="city!=null">
       AND city like concat('%',#{city},'%')
      </if>
      <if test="customerIds!=null">
       AND customer_id in 
       <foreach item="item" collection="#{customerIds}" open="(" separator="," close=")">
       #{item}
       </foreach>
      </if>
      <if test="creator!=null">
       AND creator = #{creator}
      </if>
      <if test="startTime!=null">
       AND confirm_time between #{startTime} and #{endTime}
      </if>
    ]]>
  </select>

3、总结

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

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mybatis-plus-generator和mybatis-plus是用于简化MyBatis开发的两个工具。mybatis-plus是一个MyBatis的增强工具包,提供了一些便捷的操作,节约了编写简单SQL的时间。而mybatis-plus-generator是一个代码生成,可以自动生成一些基本的Controller、Service、Mapper和Mapper.xml文件。 通过整合mybatis-plus和mybatis-plus-generator,我们可以更高效地开发项目中的单表增删改查功能。使用mybatis-plus-generator可以自动生成一些基本的文件,例如Controller、Service、Mapper和Mapper.xml,极大地减少了手动创建这些文件的时间和工作量。而mybatis-plus提供的便捷操作可以节约编写简单SQL的时间。 然而,对于一些逻辑复杂、多表操作或动态SQL等情况,建议使用原生SQL来处理。mybatis-plus支持原生SQL的使用,通过写原生SQL可以更灵活地满足这些复杂需求。 综上所述,通过整合mybatis-plus和mybatis-plus-generator,我们可以在开发中更高效地处理单表的增删改查功能,并且对于复杂的需求可以使用原生SQL来满足。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Spring cloud整合MyBatis-plus和mybatis-plus-generator](https://blog.csdn.net/cssweb_sh/article/details/123767029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [mybatis-plus-generator(mybatisplus代码生成篇)](https://blog.csdn.net/b13001216978/article/details/121690960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值