下面是关于“SpringBoot项目使用mybatis-plus代码生成的实例详解”的完整攻略:
1. 什么是mybatis-plus代码生成
mybatis-plus代码生成是基于mybatis-plus框架实现的一种自动生成代码的工具。通过提供表名、实体类名等信息,可以自动创建对应的Java类、Mapper接口及其SQL语句等,并且支持控制台输出或直接生成文件在项目中进行使用。使用mybatis-plus代码生成,可以加快开发效率、降低人为错误率、减少代码量等优点。
2. 如何使用mybatis-plus代码生成
下面将详细介绍如何使用mybatis-plus代码生成。
2.1 引入依赖
在pom.xml文件中引入mybatis-plus-generator依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>latest-version</version>
</dependency>
2.2 配置Generator
在代码中配置Generator,通过Generator可以指定自动生成代码的相关参数,包括数据库驱动、数据库连接信息、代码生成目录、包名、表名以及实体类别名以及Mapper文件的输出格式等。
public static void main(String[] args) {
// 1.全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("your name");
globalConfig.setOpen(false);
// 2.数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatis-test?useUnicode=true&useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
// 3.包名策略配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.demo");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");
packageConfig.setXml("mapper.xml");
packageConfig.setService("service");
packageConfig.setController("controller");
// 4.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true);
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setInclude("user");
strategyConfig.setControllerMappingHyphenStyle(true);
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
// 5.整合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setDataSource(dataSourceConfig);
autoGenerator.setGlobalConfig(globalConfig);
autoGenerator.setPackageInfo(packageConfig);
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
}
2.3 运行Generator
上述代码中的AutoGenerator是主类,运行主类即可生成对应的Java类、Mapper接口及其SQL语句等。执行完成后,项目中会自动生成代码,我们可以通过生成的Mapper接口调用生成的SQL语句对数据库进行各种操作。同时,mybatis-plus也支持指定输出目录以及文件名,用户可以灵活地自定义自动生成的代码的存放路径和文件名。
3. 示例
下面给出两个示例,分别演示如何使用mybatis-plus代码生成创建基本CRUD操作和关联查询操作的代码。
3.1 基本CRUD操作
3.1.1 创建数据库表
首先,我们先创建一个user表,用于演示基本CRUD操作:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '',
`age` int(11) NOT NULL DEFAULT '0',
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
3.1.2 配置Generator
在上文的代码中,修改策略配置:
// 4.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true);
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setInclude("user");
strategyConfig.setControllerMappingHyphenStyle(true);
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
3.1.3 生成代码
运行主类,将会在项目的com.example.demo下自动生成entity、mapper及service下对应的Java类及其SQL语句等。
3.1.4 使用生成代码
通过生成的Mapper接口和Service类,以及生成的SQL语句,我们可以方便地对user表进行增删改查操作。
3.2 关联查询操作
3.2.1 创建数据库表
创建两个表:user和address,address表用于保存用户地址信息。
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '',
`age` int(11) NOT NULL DEFAULT '0',
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
CREATE TABLE `address` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`address` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
CONSTRAINT `fk_address_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
3.2.2 配置Generator
// 4.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true);
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setInclude("user", "address"); // 指定要自动生成的表名,这里同时指定user和address表
strategyConfig.setControllerMappingHyphenStyle(true);
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
// 指定外键关系,address表中的user_id引用user表的id
strategyConfig.setTableFillList(Arrays.asList(
new TableFill("gmt_create", FieldFill.INSERT),
new TableFill("gmt_modified", FieldFill.INSERT_UPDATE)));
strategyConfig.setDbColumnUnderline(true);
strategyConfig.setRestControllerStyle(true);
// 5.整合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setDataSource(dataSourceConfig);
autoGenerator.setGlobalConfig(globalConfig);
autoGenerator.setPackageInfo(packageConfig);
autoGenerator.setTemplate(templateConfig);
autoGenerator.setCfg(injectionConfig);
autoGenerator.setStrategy(strategyConfig);
autoGenerator.execute();
3.2.3 生成代码
编写好Generator配置后,执行main方法将会在项目的com.example.demo下自动生成entity、mapper及service下对应的Java类及其SQL语句、sqlmap.xml文件等。
3.2.4 使用生成代码
使用生成的代码,即可实现关联表查询等操作。
以上就是关于“SpringBoot项目使用mybatis-plus代码生成的实例详解”的攻略和示例,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目使用mybatis-plus代码生成的实例详解 - Python技术站