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、总结
对于这个东西,初学者不建议用,而不是初学者基本上也不会用这东西,公司的框架基本上都有更好的代码生成工具,比这更加完善,更加实用,所以说这玩意很尴尬,但是没有生成的项目可以加上,可以节约时间
最后,如有问题,请指正!