MyBatis-Plus 是一个 MyBatis 的增强工具;
先构建一个 spring boot 项目
1. 添加依赖
<!-- 数据库 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<!-- 代码生成器 如不使用可以不加 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<!-- Druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version>
</dependency>
<!-- 模板引擎 和代码生成器搭配使用,如不使用可以不加 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
2.配置
如果是 .yml 文件 ↓
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource # 数据源类型
url: jdbc:h2:mem:test
username: root
password: test
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志
如果是 .properties文件 ↓
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:h2:mem:test
spring.datasource.username = root
spring.datasource.password = test
mybatis-plus.configuration.log-impl= org.apache.ibatis.logging.stdout.StdOutImpl #日志
更多 dataSource 配置 :https://www.cnblogs.com/toughzcf/p/9835867.html
在 Spring Boot 启动类中添加 @MapperScan
注解,扫描 Mapper 文件夹:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = {"com.example.*"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
3. 生成 @Data,mapper 文件(此处我是用代码生成器直接生成的)
代码生成器代码↓
// 代码生成器
@Test
void generator() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("author"); // 作者名
globalConfig.setOpen(false);
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl(jdbcUrl); // 数据库连接地址
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root"); // 数据库用户名
dataSourceConfig.setPassword("3wHNY2Bq"); // 数据库密码
//3、策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true) // 开启全局大写命名
// .setDbColumnUnderline(true) // 表名字段名使用下划线
.setNaming(NamingStrategy.underline_to_camel)//下划线转驼峰的命名方式
.setTablePrefix("xxxx_") // 表名前缀
.setEntityLombokModel(true) // 使用lombok
.setInclude("xxxx_sms"); // 逆向工程使用的表
//4、包名策略配置
PackageConfig packageConfig = new PackageConfig();
packageConfig
.setParent("com.example.demo") // 设置包名的parent
.setMapper("dao.xxxx")
// .setService("service") // service 文件目录
// .setController("controller") // controller 文件目录
.setEntity("entity.xxxx") // data文件目录
.setXml("mapper/xxxx"); // 设置xml文件的目录 (暂没有找到xml文件直接存到 resource 目录下的方法,由于resource目录和java目录同级)
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
//控制 不生成 controller,server,impl 文件
templateConfig.setController("").setService("").setServiceImpl("");
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(globalConfig)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.setTemplate(templateConfig);
//6、执行
autoGenerator.execute();
}
4. 现在就可以直接使用增删改查了
@Service
public class HomeImpl implements HomeService {
@Autowired
private SmsMapper smsMapper;
@Override
public List sms(String phone) {
QueryWrapper<Sms> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("phone", phone);
return smsMapper.selectList(queryWrapper);
}
}