一、MyBatisPlus代码生成器
- MBG代码生成器是基于xml文件进行代码生成,可以生成实体类、Mapper接口、Mapper映射文件
-
- MyBatisPlus代码生成器基于java代码来完成,可以生成实体类、Mapper接口、Mapper映射文件、Service层、Controller层。
二、代码生成器配置
@Test
public void testGenerator(){
//1、全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setActiveRecord(true) //是否支持AR模式
.setAuthor("Jian")
.setOutputDir("D:\\Java\\workspace_idea\\MybatisPlus\\src\\main\\java") //生成路径
.setFileOverride(true) //是否支持文件覆盖
.setIdType(IdType.AUTO) //主键策略
.setServiceName("%sService") //设置生成的service接口名字首字符是否为I
.setBaseResultMap(true) //设置是否支持映射结果集
.setBaseColumnList(true); //设置是否支持生成数据库列名集合
//2、数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) //设置数据库类型
.setDriverName("com.mysql.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/mp")
.setUsername("root")
.setPassword("root");
//3、策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true) //全局大写命名
.setNaming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名规则,下划线-->驼峰命名
.setTablePrefix("tbl_") //指定表名前缀
.setInclude("tbl_employee"); //生成的表
//4、包名策略配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("mpGenerator")
.setMapper("mapper") //指定Mapper接口包名
.setService("service") //指定service层包名
.setController("controller") //指定Controller层包名
.setEntity("bean") //指定bean包名
.setXml("mapper"); //xml映射文件放在mapper包下
//5、整合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(globalConfig)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6、执行
autoGenerator.execute();
}
自动生成
其中生成的EmployeeServiceImpl
实现类继承了ServiceImpl
父类
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {
}
在父类ServiceImpl
中已经完成了Mapper
对象的注入,直接在EmployeeServiceImpl
中可以使用,在父类ServiceImpl
中也提供了常用的CRUD方法,基本的一些CRUD方法在Service
层不需要自己定义。