MyBatisPlus学习笔记(三)MP代码生成器

MyBatisPlus学习笔记(三)MP代码生成器

简介

  • MyBatisPlus的代码生成器,提供了大量的自定义设置,生成的代码完全能够满足各类型的需求依赖
  • MP 的代码生成器 和 Mybatis MBG 代码生成器:
    1. MP 的代码生成器都是基于 java 代码来生成。MBG 基于 xml 文件进行代码生成
    2. MyBatis 的代码生成器可生成: 实体类、Mapper 接口、Mapper 映射文件
    3. MP 的代码生成器可生成: 实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射文件、 Service 层、Controller 层.

模板引擎

  • MP 的代码生成器默认使用的是 Apache 的 Velocity 模板
<!-- 默认的模板依赖 -->
<!-- Apache velocity -->
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.0</version>
</dependency>
<!-- 如需自定义模板引擎,还需加上这个依赖 -->
<!-- 模板引擎,需要指定 mpg.setTemplateEngine(new FreemarkerTemplateEngine()); -->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>最新版本</version>
</dependency>

slf4j日志

<!-- sfl4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>

代码

// 此处使用的默认的模板
public class MBGTest {
	public static void main(String[] args) {
		// 全局配置
		GlobalConfig globalConfig = new GlobalConfig();
		globalConfig.setActiveRecord(true)	// 是否支持ActiveRecord
			.setEnableCache(false)		// 是否开启二级缓存
			.setAuthor("孔明") 			// 设置作者
			.setOutputDir("H:\\workspace\\eclipse-Project\\mp3\\src\\main\\java") // 生成路径(绝对路径)
			.setFileOverride(true)  	// 文件覆盖
			.setBaseResultMap(true)		// mapper映射文件是否生成BaseResultMap
			.setBaseColumnList(false)	// XML 是否生成BaseColumn
			// 自定义文件命名,注意 %s 会自动填充表实体属性!
			.setServiceName("%sService");	// 设置生成的service接口的名字的首字母是否为I
			
		// 数据源配置
		DataSourceConfig source = new DataSourceConfig();
		source.setDbType(DbType.MYSQL)					// 设置数据库类型
			.setDriverName("com.mysql.jdbc.Driver")		// 数据库驱动
			.setUrl("jdbc:mysql://localhost:3306/mp")	// 数据库地址
			.setUsername("root")						// 用户名
			.setPassword("root");						// 密码
		
		// 策略配置
		StrategyConfig strategy = new StrategyConfig();
		strategy.setCapitalMode(true) 		//全局大写命名
			.setDbColumnUnderline(true)		// 指定表名 字段名是否使用下划线
			.setNaming(NamingStrategy.underline_to_camel)	// 数据库表映射到实体的命名策略
			.setTablePrefix("tbl_")				// 表前缀
			.setInclude("tbl_employee"); 		// 生成的表
		
		// 包名配置
		PackageConfig packageConfig = new PackageConfig();
		packageConfig.setParent("com.fu") 	// 所有包的父包
			.setEntity("bean")				// 实体类包
			.setMapper("mapper")			// mapper接口
			.setXml("mapper")				// xml文件
			.setService("service")			// service文件
			.setServiceImpl("service.impl")	// serviceImpl文件
			.setController("controller");	// controller层的包
		
		// 整合配置
		AutoGenerator autoGenerator = new AutoGenerator();
		autoGenerator.setGlobalConfig(globalConfig)
			.setDataSource(source)
			.setPackageInfo(packageConfig)
			.setStrategy(strategy);
		
		// 执行代码生成器
		autoGenerator.execute();
	}
}
发布了21 篇原创文章 · 获赞 5 · 访问量 2063

猜你喜欢

转载自blog.csdn.net/fan521dan/article/details/99674184