1.MybatisPlus(二)MybatisPlus入门案例2.MybatisPlus(一)MybatisPlus简介3.MybatisPlus(三)MybatisPlus CRUD操作4.MybatisPlus(四)MybatisPlus分页5.MybatisPlus(五)MybatisPlus条件查询6.MybatisPlus(六)MybatisPlus-空值处理7.MybatisPlus(七)MybatisPlus-DQL编程控制(上)8.MybatisPlus(八)MybatisPlus-DQL编程控制(下)9.MybatisPlus(九)MybatisPlus-DML编程控制10.MybatisPlus(十)MybatisPlus-逻辑删除和多记录操作11.MybatisPlus(十一)MybatisPlus-乐观锁
12.MybatisPlus(十二)Mybatis-Plus 代码生成器
一、代码生成器
代码生成器:代码由定义的模版、 读取数据库和开发者自定义部分组成。
-模板:MyBatisPlus提供,Mabatis-Plus 收集了大量开发者写的标准代码,定义了模版,也可以开发者自定义模版。
-数据库相关配置:读取数据库获取信息
-开发者自定义配置:手工配置
实体对象类:代码如下
package com.it.domain; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @Data @TableName("tbl_user") public class User { @TableId(type = IdType.ASSIGN_ID) private Long id; private String name; @TableField(value = "pwd",select = false) private String password; private Integer age; private String tel; @TableField(exist = false) private Integer online; @TableLogic(value = "0" ,delval = "1") private Integer deleted; @Version private Integer version; }
Mapper接口:代码如下
package com.it.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.it.domain.User; import org.apache.ibatis.annotations.Mapper; @Mapper public interface UserDao extends BaseMapper<User> { }
二、代码生成器使用步骤
步骤一:创建SpringBoot工程,添加代码生成器相关依赖,
<!--代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.X.X</version> </dependency> <!--velocity模板引擎--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>X.X</version> </dependency>
步骤二:编写代码生成器类,生成代码
package com.it; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; public class Generator { public static void main(String[] args) { //1. 创建代码生成器对象,执行生成代码操作 AutoGenerator autoGenerator = new AutoGenerator(); //2. 数据源相关配置:读取数据库中的信息,根据数据库表结构生成代码 DataSourceConfig dataSource = new DataSourceConfig(); dataSource.setDriverName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC"); dataSource.setUsername("root"); dataSource.setPassword("123456"); autoGenerator.setDataSource(dataSource); //3. 执行生成操作 autoGenerator.execute(); } }
开发者自定义配置:
数据源相关配置:读取数据库中的信息,根据数据库表结构生成代码
//数据源相关配置:读取数据库中的信息,根据数据库表结构生成代码 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("123456"); autoGenerator.setDataSource(dataSourceConfig);
设置全局配置
//设置全局配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(System.getProperty("user.dir")+"/mybatisplus_generator/src/main/java"); //设置代码生成位置 globalConfig.setOpen(false); //设置生成完毕后是否打开生成代码所在的目录 globalConfig.setAuthor("你是程序员"); //设置作者 globalConfig.setFileOverride(true); //设置是否覆盖原始生成的文件 globalConfig.setMapperName("%sDao"); //设置数据层接口名,%s为占位符,指代模块名称 globalConfig.setIdType(IdType.ASSIGN_ID); //设置Id生成策略 autoGenerator.setGlobalConfig(globalConfig);
设置包名相关配置
//设置包名相关配置 PackageConfig packageInfo = new PackageConfig(); packageInfo.setParent("com.it"); //设置生成的包名,与代码所在位置不冲突,二者叠加组成完整路径 packageInfo.setEntity("domain"); //设置实体类包名 packageInfo.setMapper("dao"); //设置数据层包名 autoGenerator.setPackageInfo(packageInfo);
策略设置
//策略设置 StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setInclude("tbl_user"); //设置当前参与生成的表名,参数为可变参数 strategyConfig.setTablePrefix("tbl_"); //设置数据库表的前缀名称,模块名 = 数据库表名 - 前缀名 例如: User = tbl_user - tbl_ strategyConfig.setRestControllerStyle(true); //设置是否启用Rest风格 strategyConfig.setVersionFieldName("version"); //设置乐观锁字段名 strategyConfig.setLogicDeleteFieldName("deleted"); //设置逻辑删除字段名 strategyConfig.setEntityLombokModel(true); //设置是否启用lombok autoGenerator.setStrategy(strategyConfig);
运行测试,成功生成实体类和Mapper接口。
代码生成器可以生成 domain service dao controller 层代码,查看生成service代码, service 层代码 一般不用。
service层接口代码:
package com.it.service; import com.it.domain.User; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 服务类 * </p> * * @author 你是程序员 * @since 2023-06-15 */ public interface IUserService extends IService<User> { }
service层实现类代码:
import com.it.domain.User; import com.it.dao.UserDao; import com.it.service.IUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author 你是程序员 * @since 2023-06-15 */ @Service public class UserServiceImpl extends ServiceImpl<UserDao, User> implements IUserService { }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库