MyBatisPlus:通用枚举与代码生成器/MyBatisX插件
通用枚举
数据库表添加字段sex,设置为int型
创建通用枚举类型
package com.tinstu.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum EnumSex {
MALE(1,"男"),FEMALE(2,"女");
@EnumValue
private Integer sex;
private String sexName;
EnumSex(int sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
User表中添加sex属性 和 其set属性
private EnumSex sex;
public void setSex(EnumSex sex) {
this.sex = sex;
}
配置扫描通用枚举
<bean
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml">
</property>
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="com.atguigu.mp.pojo"></property>
<!-- 设置MyBatis-Plus的全局配置 -->
<property name="globalConfig" ref="globalConfig"></property>
<!-- 配置扫描通用枚举 -->
<property name="typeEnumsPackage" value="com.atguigu.mp.enums"></property>
</bean>
测试
@Test
public void testSexEnum(){
User user = new User();
user.setName("Enum");
user.setAge(20);
//设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存储到数据库
user.setSex(EnumSex.MALE);
//INSERT INTO t_user ( username, age, sex ) VALUES ( ?, ?, ? )
//Parameters: Enum(String), 20(Integer), 1(Integer)
usermapperP.insert(user);
}
代码生成器
引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
快速生成
public class text01 {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone = GMT",
"root", "root")
.globalConfig(builder -> {
builder.author("atguigu") // 设置作者
//.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D://mybatis_plus"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.atguigu") // 设置父包名
.moduleName("mybatisplus") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus"));
// 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker 引擎模板,默认的是Velocity引擎模板
.execute();
}
}
MyBatisX插件
MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率
但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题,例如一些复杂的SQL,多表
联查,我们就需要自己去编写代码和SQL语句,我们该如何快速的解决这个问题呢,这个时候可
以使用MyBatisX插件
MyBatisX一款基于 IDEA 的快速开发插件,为效率而生。
MyBatisX插件用法:https://baomidou.com/pages/ba5b24/
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/1487.html
文章版权归作者所有,未经允许请勿转载。
THE END