网站mybatis.plus/guide/
3.0文档
加载maven:spring boot devtools,Lombok,spring web,mysql Driver
加dao包的扫描
配置文件
数据库
Entity
在dao层中添加一个接口
Test
查看日志
常用注解
@TableName:映射表明
@TableId:映射主键
@TableField:映射字段
一些特殊业务可能需要在字段设置@TableField(exist=false)
目录为
重点:按照条件查询
增删改查
1. 新建 MyBatis-Plus 代码生成器项目
2.添加代码生成器依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version></dependency>
3.添加模板引擎依赖
- MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
- 下面三个依赖任选其一
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-engine-core --><dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version></dependency>
<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --><dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version></dependency>
<!-- https://mvnrepository.com/artifact/com.ibeetl/beetl --><dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.1.3.RELEASE</version></dependency>
3.如果我们选择了非默认引擎,需要在 AutoGenerator 中 设置模板引擎。
AutoGenerator generator = new AutoGenerator();
// set freemarker engine
generator.setTemplateEngine(new FreemarkerTemplateEngine());
// set beetl engine
generator.setTemplateEngine(new BeetlTemplateEngine());
// set custom engine (reference class is your custom engine class)
generator.setTemplateEngine(new CustomTemplateEngine());
// other config...
4.完整pom.xml
- 代码生成器需要依赖数据库表,所以也需要 MySQL 驱动包
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.zwq</groupId>
<artifactId>mybatis-plus-auto-generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis-plus-auto-generator</name>
<description>mybatis-plus-auto-generator</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--MyBatis-Plus代码生成器需要的依赖,开始-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--MyBatis-Plus代码生成器需要的依赖,结束-->
</dependencies></project>
5.全局配置
1.user.dir获取到你当前工程的 src 目录路径
6. 数据库信息配置
7. 包配置
8.策略配置
9.完整 MyBatis-Plus 代码生成器代码
- MyBatis-Plus 代码生成器所有配置都可以使用 Java Config 完成,不需要单独在 XML 配置。
public class SggCodeGenerator {
public static void main(String[] args) {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("zwq");//生成注释中有zwq
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.ID_WORKER_STR); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(false);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis-plus?serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(null); //模块名
pc.setParent("cn.zwq.mybatis-plus");
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("user");//对那一张表生成代码
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
// 6、执行
mpg.execute();
}}
重点:需要修改的地方
1.全局配置文件中的gc.setAuthor("jie");
2.数据源配置中的dsc.setUrl("jdbc:mysql://localhost:3306/lx?serverTimezone=GMT%2B8");
3.包配置pc.setParent("com.example.dept");
4.策略配置strategy.setInclude("dept");//对那一张表生成代码
可以参考链接:https://www.jianshu.com/p/9d8ab1bb84bb
Oracle的数据源为
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
/* dsc.setUrl("jdbc:mysql://localhost:3306/lx?serverTimezone=GMT%2B8");*/
dsc.setUrl("jdbc:oracle:thin:@//47.106.205.71:1521/orcl");
dsc.setDriverName("oracle.jdbc.OracleDriver");
dsc.setUsername("LCSUSER");
dsc.setPassword("lcsuser123");
dsc.setDbType(DbType.ORACLE);
mpg.setDataSource(dsc);
参考项目的地址为:E:\suomingwork\lx\mybatis_pluslx