本文参考自mybatis-plus自动生成代码
创建数据库测试数据
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
创建一个springboot项目
新增依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
创建自动生成代码类MysqlGenerator
package com.thz.mybatis_plus_demo.util;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class MysqlGenerator {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("thz"); // 作者
gc.setOpen(false); //生成代码后是否打开文件夹
gc.setServiceName("%sService"); // 设置Service接口生成名称,这样生成接口前面就不会有 I
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("151415");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(""); // 模块名称, 这里可以根据不同模块来写
pc.setParent("com.thz.mybatis_plus_demo"); // 父包名
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperControllerClass("com.thz.mybatis_plus_demo.generator.sys.BaseController");
// strategy.setSuperEntityClass("com.thz.mybatis_plus_demo.generator.sys.entity.BaseEntity");
strategy.setEntityLombokModel(true);
strategy.setInclude("user"); // 表名,如果要生成多个,这里可以传入String[]
mpg.setStrategy(strategy);
mpg.execute();
}
}
注意修改数据库连接配置、生成代码的放置位置及需要生成的表
执行之后的项目目录如下
可以看到代码已经生成好了,接下来我们测试一下是否可用
在启动类加入注解声明mapper位置
@MapperScan("com.thz.mybatis_plus_demo.mapper")
修改application.yml配置数据源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: 151415
编写controller
/**
* <p>
* 前端控制器
* </p>
*
* @author thz
* @since 2020-07-31
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@RequestMapping("list")
@ResponseBody
public String list(){
List<User> list = new ArrayList<User>();
list = userService.list();
return list.toString();
}
}
启动项目,我们输入测试地址试一下
可以看到数据已经被查出来了