Mybatis-Plus快速接入
Springboot环境接入Mybatis-Plus相关步骤。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.7</version>
</parent>
1、导入Mybatis-Plus依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
</dependency>
2、导入mysql JDBC依赖
springboot中包含jdbc依赖,无需指定版本。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
3、导入代码自动生成依赖
使用代码自动生成,可以快速构建MVC框架,使用方便
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
4、YML文件属性配置
- 添加datasource数据源
- mybatis-plus相关配置,其中mapper-locations: classpath*:xml/*.xml用来指定.xml文件路径位置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/urdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: 1234
mybatis-plus:
mapper-locations: classpath*:xml/*.xml
5、代码自动生成
自动生成的Mapper类没有添加@Mapper注解,需手动加上。再结合MybatisCodeHelper插件使用,可以自动生成相关sql操作方法。
String url = "jdbc:mysql://127.0.0.1:3306/urdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=true";
String username = "root";
String password = "1234";
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.author("author") // 设置作者
// .enableSwagger() // 开启 swagger 模式
// .fileOverride() // 覆盖已生成文件
.outputDir("F:\JavaDemo\WebLearnApi\weblearnapi\src\main\java"); // 指定输出目录
})
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
// 自定义类型转换
return DbColumnType.INTEGER;
}
return typeRegistry.getColumnType(metaInfo);
}))
.packageConfig(builder -> {
builder.parent("com.urpackage") // 设置父包名
// .moduleName("system") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, "F:\JavaDemo\WebLearnApi\weblearnapi\src\main\resources\xml")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("userinfo") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();