Mybatis-Plus在springCloud中的使用
依赖添加
<mybaits.version>2.3.3</mybaits.version>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generate</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-support</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-core</artifactId>
<version>${mybatis.version}</version>
</dependency>
代码生成器
MyBatisPlusGenerator
public static void main(String[] args) throws SQLException {
//1. 全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) // 是否支持AR模式
.setAuthor("MrLiu") // 作者
.setOutputDir("C:\\Users") // 生成路径
.setFileOverride(true) // 文件覆盖
.setIdType(IdType.AUTO) // 主键策略
.setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I
.setBaseResultMap(true)//生成基本的resultMap
.setBaseColumnList(true);//生成基本的SQL片段
//2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
.setDriverName("com.mysql.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&rewriteBatchedStatements=true")
.setUsername("root")
.setPassword("root");
//3. 策略配置globalConfiguration中
StrategyConfig stConfig = new StrategyConfig();
stConfig.setCapitalMode(true) //全局大写命名
.setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
//.setTablePrefix("tbl_")
.entityTableFieldAnnotationEnable(true)
.setInclude(new String[]{"table_name"}); // 生成的表
//4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
StrategyConfig sc=new StrategyConfig();
pkConfig.setParent("com.xxx.rop.portal")
.setMapper("mapper")//dao
.setService("service")//servcie
.setController("controller")//controller
.setEntity("")
.setXml("resource");//mapper.xml
//5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(stConfig)
.setPackageInfo(pkConfig);
//6. 执行
ag.execute();
}
后期修改
-
各部分之间依赖路径,删掉import重新引入
-
mapper.xml中注释掉二级缓存
-
MybatisPlusConfig中添加mapper的扫描路径
-
yml中设置扫描路径
-
注释的添加
@service、 @repository等
采坑日志
- insert方法主键丢失
在实体类生成时,主键注释中添加了type = IdType.AUTO属性,mybatis-plus自动生成的id可能导致数据过长无法插入的情况,也就是主键丢失,可以去除这条注解,或采用bigint形式存储,致谢@但行善事莫问前程