我是靠谱客的博主 标致小海豚,最近开发中收集的这篇文章主要介绍Mybatis PlusMybatis Plus使用一、pom.xml二、application.yml三、入门四、自动代码生成五、spring boot整合mybatis plus,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Mybatis Plus使用
文章目录
- Mybatis Plus使用
- 一、pom.xml
- 二、application.yml
- 三、入门
- 1.实体类
- 2.mapper
- 四、自动代码生成
- 1.jar
- 2.生成器代码
- 五、spring boot整合mybatis plus
- 1.mybatis plus分页插件
- 2.分页查询
- 3.Controller
一、pom.xml
maven引入jar包
parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/>
</parent>
其他
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis plus核心包-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!-- lombok 简化实体类写法 日志功能支持-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
二、application.yml
#配置整合druid
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8
username: root
password: root
initial-size: 5
max-active: 20
min-idle: 10
max-wait: 10
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
#配置日志输出
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
三、入门
1.实体类
在主键上添加注解 @TableId
import lombok.Data;
/**
* @ fileName:User
* @ description:
* @ author:makejava
* @ createTime:2022/7/18 9:51
* @ version:1.0.0
*/
@SuppressWarnings("serial")
@TableName("user")
@Data
public class User {
/**
* 用户编号
*/
@TableId
private Long id;
/**
* 用户名称
*/
private String name;
/**
* 邮箱
*/
private String email;
}
2.mapper
import com.sbmp.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @ fileName:UserMapper
* @ description:
* @ author:makejava
* @ createTime:2022/7/18 9:53
* @ version:1.0.0
*/
public interface UserMapper extends BaseMapper<User> {
}
四、自动代码生成
1.jar
<!--mybatisplus 代码生成器包-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!--默认前端引擎包 不加生成时会报错-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
2.生成器代码
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Collections;
/**
* @ fileName:AutoCodeGenerator
* @ description:
* @ author:makejava
* @ createTime:2022/7/19 10:24
* @ version:1.0.0
*/
public class AutoCodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/db",
"root", "root")
.globalConfig(builder -> {//全局配置
builder.author("baomidou") // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D:\idea\springboot_mybatisplus_demo\src\main\java"); // 指定输出目录
})
.packageConfig(builder -> {//包配置
builder.parent("com") // 设置父包名
.moduleName("sbmp") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,
"D:\idea\springboot_mybatisplus_demo\src\main\resources\mapper")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("tb_user","sys_menu") // 设置需要生成的表名
.addTablePrefix("tb_", "sys_"); // 设置过滤表前缀
})
//.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
五、spring boot整合mybatis plus
1.mybatis plus分页插件
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @ fileName:MybatisPlusConfig
* @ description:
* @ author:makejava
* @ createTime:2022/7/19 11:09
* @ version:1.0.0
*/
@Configuration
public class MybatisPlusConfig {
/**
* mybatis plus分页插件配置
* @return
*/
@Bean //<bean id=mybatisPlusInterceptor class='com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor'
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
2.分页查询
import com.sbmp.entity.User;
import com.sbmp.mapper.UserMapper;
import com.sbmp.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Map;
/**
* 服务实现类
*
* @author makejava
* @since 2022-07-19
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Resource
private UserMapper userMapper;
@Override
public IPage<User> queryPage(Map map) {
//分页参数设置
IPage<User> page = new Page<>();
//设置当前页码 第几页
page.setCurrent(Long.valueOf(map.get("pageNo") +""));
//设置每页显示条数
page.setSize(Long.valueOf(map.get("pageSize") +""));
//查询封装类
QueryWrapper queryWrapper =new QueryWrapper();
//使用加各种参数
if(!StringUtils.isEmpty(map.get("name"))){
queryWrapper.like("name", map.get("name"));
}
if(!StringUtils.isEmpty(map.get("email"))){
queryWrapper.like("email", map.get("email"));
}
return userMapper.selectPage(page, queryWrapper);
}
}
3.Controller
import com.sbmp.entity.User;
import com.sbmp.service.IUserService;
import com.sbmp.util.Result;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.Map;
/**
* 前端控制器
*
* @author makejava
* @since 2022-07-19
*/
@RestController
@RequestMapping("/user")
public class UserController extends BaseController{
@Resource
private IUserService iUserService;
/**
* 分页带参查询方法
* @param map
* @return
*/
@PutMapping("page")
public Result page(@RequestBody Map map){
return success(iUserService.queryPage(map));
}
}
最后
以上就是标致小海豚为你收集整理的Mybatis PlusMybatis Plus使用一、pom.xml二、application.yml三、入门四、自动代码生成五、spring boot整合mybatis plus的全部内容,希望文章能够帮你解决Mybatis PlusMybatis Plus使用一、pom.xml二、application.yml三、入门四、自动代码生成五、spring boot整合mybatis plus所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复