哈喽,大家好,我是木头左,AI改变生活!
本文将详细解释 MyBatis 生成 Java 代码的过程,包括全局配置、数据源配置和策略配置。
1. 全局配置
首先,我们需要创建一个 GlobalConfig
对象,用于配置 MyBatis 的全局设置。以下是一些常用的全局配置选项:
-
setOutputDir(String outputDir)
:设置生成 Java 代码的输出目录。 -
setFileOverride(boolean fileOverride)
:设置是否覆盖已存在的同名文件。 -
setActiveRecord(boolean activeRecord)
:设置是否生成 ActiveRecord 特性。如果不需要 ActiveRecord 特性,请设置为 false。 -
setEnableCache(boolean enableCache)
:设置是否启用二级缓存。 -
setBaseResultMap(boolean baseResultMap)
:设置是否生成 XML ResultMap。 -
setBaseColumnList(boolean baseColumnList)
:设置是否生成 XML columList。 -
setAuthor("pengzuo")
:设置作者信息。 -
setMapperName("%s")
:设置 Mapper 接口的命名规则。 -
setServiceImplName("%sDaoImpl")
:设置 Service 实现类的命名规则。 -
setServiceName("I%sDao")
:设置 Service 接口的命名规则。 -
setEntityName("%sEntity")
:设置 Entity 类的命名规则。 -
setControllerName("%sController")
:设置 Controller 类的命名规则。
接下来,我们将这些全局配置应用到 MyBatis Generator(MBG)中:
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(outPut + "java");
gc.setFileOverride(true);
gc.setActiveRecord(true);
gc.setEnableCache(false);
gc.setBaseResultMap(true);
gc.setBaseColumnList(false);
gc.setAuthor("mutouzuo");
gc.setMapperName("%s");
gc.setServiceImplName("%sDaoImpl");
gc.setServiceName("I%sDao");
gc.setEntityName("%sEntity");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
2. 数据源配置
数据源配置用于设置 MyBatis Generator 连接数据库的相关参数。以下是一些常用的数据源配置选项:
-
setDbType(DbType dbType)
:设置数据库类型,如 MySQL、PostgreSQL 等。 -
setDriverName(String driverName)
:设置数据库驱动类名。 -
setUsername(String username)
:设置数据库用户名。 -
setPassword(String password)
:设置数据库密码。 -
setUrl(String url)
:设置数据库连接 URL。
接下来,我们将这些数据源配置应用到 MyBatis Generator(MBG)中:
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.POSTGRE_SQL);
dsc.setDriverName("org.postgresql.Driver");
dsc.setUsername(username);
dsc.setPassword(password);
dsc.setUrl(dbUrl);
mpg.setDataSource(dsc);
3. 策略配置
策略配置用于设置 MyBatis Generator 生成代码的策略,例如表名生成策略、字段常量生成策略等。以下是一些常用的策略配置选项:
-
setTablePrefix(String[] tablePrefix)
:设置需要生成代码的表的前缀。 -
setNaming(NamingStrategy naming)
:设置表名生成策略,如下划线转驼峰命名等。 -
setEntityColumnConstant(boolean entityColumnConstant)
:设置是否为实体类生成字段常量。 -
setEntityTableFieldAnnotationEnable(boolean entityTableFieldAnnotationEnable)
:设置是否为实体类生成字段注解。 -
setInclude(String[] include)
:设置需要生成代码的表名。
接下来,我们将这些策略配置应用到 MyBatis Generator(MBG)中:
StrategyConfig strategy = new StrategyConfig();
strategy.setTablePrefix(new String[]{tablePrefix});
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setEntityColumnConstant(true);
strategy.setEntityTableFieldAnnotationEnable(true);
strategy.setInclude(new String[]{"tb_app"});
mpg.setStrategy(strategy);
至此,我们已经完成了 MyBatis Generator 的配置。接下来,我们可以运行 MyBatis Generator 命令来根据配置文件生成 Java 代码。
我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!
[图片上传失败...(image-894e5-1718103923367)]