文章目录
Spring Boot —— Mybatis-Plus简介集成步骤加依赖加配置加注解使用生成器执行生成器
测试的数据结构SQLdemo地址
Spring Boot —— Mybatis-Plus
简介
通过MybatisPlus实现CRUD
集成步骤
加依赖
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
<scope>runtime
</scope>
</dependency>
<dependency>
<groupId>com.baomidou
</groupId>
<artifactId>mybatis-plus-boot-starter
</artifactId>
<version>2.3
</version>
</dependency>
<dependency>
<groupId>org.freemarker
</groupId>
<artifactId>freemarker
</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba
</groupId>
<artifactId>fastjson
</artifactId>
<version>1.2.70
</version>
</dependency>
加配置
spring:
datasource:
url: jdbc
:mysql
://localhost
:3306/frank
-dao
-user
?useUnicode=true
&characterEncoding=utf8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis-plus:
mapper-locations: classpath
:com/frank/mybatisplus/mapper/xml/*.xml
type-aliases-package: com.frank.mybatisplus.entity
configuration:
map-underscore-to-camel-case: true
加注解
没注解需要加
使用生成器
package com
.frank
.mybatisplus
.config
;
import com
.baomidou
.mybatisplus
.generator
.AutoGenerator
;
import com
.baomidou
.mybatisplus
.generator
.config
.DataSourceConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.GlobalConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.PackageConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.StrategyConfig
;
import com
.baomidou
.mybatisplus
.generator
.config
.converts
.MySqlTypeConvert
;
import com
.baomidou
.mybatisplus
.generator
.config
.rules
.DbColumnType
;
import com
.baomidou
.mybatisplus
.generator
.config
.rules
.DbType
;
import com
.baomidou
.mybatisplus
.generator
.config
.rules
.NamingStrategy
;
import com
.baomidou
.mybatisplus
.generator
.engine
.FreemarkerTemplateEngine
;
public class MpGenerator {
public static void main(String
[] args
) {
AutoGenerator mpg
= new AutoGenerator();
mpg
.setTemplateEngine(new FreemarkerTemplateEngine());
GlobalConfig gc
= new GlobalConfig();
gc
.setAuthor("Cyoung");
gc
.setOutputDir("/Users/cy/project/spring-boot-frank/spring-boot-mybatis-plus/src/main/java");
gc
.setFileOverride(false);
gc
.setActiveRecord(true);
gc
.setEnableCache(false);
gc
.setBaseResultMap(true);
gc
.setBaseColumnList(false);
mpg
.setGlobalConfig(gc
);
DataSourceConfig dsc
= new DataSourceConfig();
dsc
.setDbType(DbType
.MYSQL
);
dsc
.setTypeConvert(new MySqlTypeConvert() {
@Override
public DbColumnType
processTypeConvert(String fieldType
) {
System
.out
.println("转换类型:" + fieldType
);
return super.processTypeConvert(fieldType
);
}
});
dsc
.setDriverName("com.mysql.jdbc.Driver");
dsc
.setUsername("root");
dsc
.setPassword("root");
dsc
.setUrl("jdbc:mysql://localhost:3306/frank-dao-user?useUnicode=true&characterEncoding=utf8");
mpg
.setDataSource(dsc
);
StrategyConfig strategy
= new StrategyConfig();
strategy
.setTablePrefix(new String[] { "permission_", "role_", "user_", "user_group_", "user_login_" });
strategy
.setNaming(NamingStrategy
.nochange
);
strategy
.setInclude(new String[] { "permission", "role", "user", "user_group", "user_login" });
mpg
.setStrategy(strategy
);
PackageConfig pc
= new PackageConfig();
pc
.setParent("com.frank.mybatisplus");
mpg
.setPackageInfo(pc
);
mpg
.execute();
}
}
执行生成器
执行生成器main函数,就会生成对应的代码了,注意修改生成器的配置,以及yaml中的配置路径
测试的数据结构SQL
SET NAMES utf8
;
SET FOREIGN_KEY_CHECKS
= 0;
DROP TABLE IF EXISTS `permission
`;
CREATE TABLE `permission
` (
`id
` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`creator
` bigint(20) unsigned NOT NULL COMMENT '创建者的用户ID',
`description
` varchar(64) COLLATE utf8_bin
NOT NULL COMMENT '权限描述',
`gmt_create
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
`modifier
` bigint(20) unsigned NOT NULL COMMENT '最后修改者的用户ID',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态值,0表示已删除,1表示正常',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_bin
;
DROP TABLE IF EXISTS `role
`;
CREATE TABLE `role
` (
`id
` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`creator
` bigint(20) unsigned NOT NULL COMMENT '创建者的用户ID',
`description
` varchar(64) COLLATE utf8_bin
NOT NULL COMMENT '角色描述',
`gmt_create
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
`modifier
` bigint(20) unsigned NOT NULL COMMENT '最后修改者的用户ID',
`role_id
` bigint(20) NOT NULL COMMENT '角色主键',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态值,0表示已删除,1表示正常',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_bin
;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id
` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`address
` varchar(128) COLLATE utf8_bin
DEFAULT NULL COMMENT '地址',
`age
` tinyint(3) DEFAULT NULL COMMENT '年龄',
`creator
` bigint(20) unsigned NOT NULL COMMENT '创建者的用户ID',
`gmt_create
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
`modifier
` bigint(20) unsigned NOT NULL COMMENT '最后修改者的用户ID',
`signature_of_personality
` varchar(128) COLLATE utf8_bin
DEFAULT NULL COMMENT '个性签名',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态值,0表示已删除,1表示正常',
`user_name
` varchar(32) COLLATE utf8_bin
NOT NULL COMMENT '用户名',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_bin
;
DROP TABLE IF EXISTS `user_group
`;
CREATE TABLE `user_group
` (
`id
` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`creator
` bigint(20) unsigned NOT NULL COMMENT '创建者的用户ID',
`description
` varchar(64) COLLATE utf8_bin
NOT NULL COMMENT '用户组描述',
`gmt_create
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
`modifier
` bigint(20) unsigned NOT NULL COMMENT '最后修改者的用户ID',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态值,0表示已删除,1表示正常',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_bin
;
DROP TABLE IF EXISTS `user_login
`;
CREATE TABLE `user_login
` (
`id
` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`account
` varchar(32) COLLATE utf8_bin
NOT NULL COMMENT '账号',
`creator
` bigint(20) unsigned NOT NULL COMMENT '创建者的用户ID',
`gmt_create
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gmt_modified
` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
`modifier
` bigint(20) unsigned NOT NULL COMMENT '最后修改者的用户ID',
`name
` varchar(32) COLLATE utf8_bin
NOT NULL COMMENT '名称',
`passwd
` varchar(32) COLLATE utf8_bin
NOT NULL COMMENT '密码(加盐后MD5)',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态值,0表示已删除,1表示正常',
`type` varchar(16) COLLATE utf8_bin
NOT NULL COMMENT '类型(admin:管理员;operator:运营;scm:软件配置管理员(配置管理员))',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_bin
;
SET FOREIGN_KEY_CHECKS
= 1;
demo地址
https://github.com/FrankCy/spring-boot-frank/tree/master/spring-boot-mybatis-plus