全网最新 SpringBoo 2.6.2 集成 Mybatis-Plus 3.5.0
承接上一篇:全网最新 SpringBoo 2.6.2 集成 Druid 1.2.8
mybatis-plus-boot-starter 3.5.0
项目结构
pom.xml
增加引入mybatis-plus-boot-starter
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
sql
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(100) NOT NULL COMMENT '密码',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`mobile` varchar(100) DEFAULT NULL COMMENT '手机号',
`status` tinyint(4) DEFAULT NULL COMMENT '状态 0:禁用 1:正常',
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建者ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统用户';
INSERT INTO `sys_user` VALUES (1, 'admin', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', '939961241@qq.com', '15209821990', 1, 1, '2022-01-10 11:11:11', 1);
application.yml
追加 mybatis-plus 相关配置
# application.yml
server:
port: 8081
servlet:
context-path: /admin
spring:
profiles:
active: local
application:
name: admin-base
datasource:
druid:
# 获取链接等待超时时间
max-wait: 60000
pool-prepared-statements: true
#
validation-query: SELECT 1
test-on-borrow: false
test-on-return: false
test-while-idle: true
# 间隔多久进行一次检测,检测须要关闭的空闲链接
time-between-eviction-runs-millis: 60000
# 一个链接在链接池中最小的生存时间
min-evictable-idle-time-millis: 300000
max-pool-prepared-statement-per-connection-size: 20
# 合并多个DruidDataSource的监控数据
use-global-data-source-stat: true
filters: stat
filter:
# 慢SQL记录(sql语句执行时间超过某个界限就记录下来)
stat:
slow-sql-millis: 200
log-slow-sql: true
# 监控配置
# Druid WebStatFilter配置
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: /druid/*,*.gif,*.png,*.jpg,*.html,*.js,*.css,*.ico
# Druid StatViewServlet配置
stat-view-servlet:
enabled: true
url-pattern: /druid/*
# 登陆监控界面的用户名以及密码,登陆url为localhost:8080/druid
login-username: admin
login-password: admin
allow:
deny:
mybatis-plus:
mapper-locations: classpath*:mybatis/*.xml
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 auto:"数据库ID自增"
id-type: auto
configuration:
# 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
map-underscore-to-camel-case: true
# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
SysUserController
package com.xing.admin.base.controller;
import com.xing.admin.base.entity.SysUser;
import com.xing.admin.base.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/sys_user/")
public class SysUserController {
@Autowired
SysUserService sysUserService;
@GetMapping("getUser")
public SysUser queryByUserId(@RequestParam Integer userId) {
return sysUserService.queryByUserId(userId);
}
}
SysUser
package com.xing.admin.base.entity;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
* <p>Title: SysUser</p>
* <p>
* Description: 系统用户
* </p>
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SysUser extends Model<SysUser> {
/**
* 用户ID
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private transient String password;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
/**
* 状态 0:禁用 1:正常
*/
private Integer status;
/**
* 创建者ID
*/
private Long createUserId;
/**
* 创建时间
*/
private Date createTime;
/**
* 部门ID
*/
private Long deptId;
}
SysUserMapper
package com.xing.admin.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xing.admin.base.entity.SysUser;
import org.apache.ibatis.annotations.Mapper;
/**
*
* <p>Title: SysUserMapper</p>
* <p>
* Description: 系统用户
* </p>
*/
@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {
}
SysUserService
package com.xing.admin.base.service;
import com.xing.admin.base.entity.SysUser;
import com.xing.admin.base.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class SysUserService {
@Autowired
SysUserMapper sysUserMapper;
public SysUser queryByUserId(Integer userId) {
return sysUserMapper.selectById(userId);
}
}
AdminBaseApplication
追加配置:@MapperScan(“com.xing.admin.base.mapper”)
package com.xing.admin.base;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
* <p>Title: AdminBaseApplication</p>
* <p>
* Description: 主启动类
* </p>
*/
@MapperScan("com.xing.admin.base.mapper")
@SpringBootApplication
public class AdminBaseApplication {
public static void main(String[] args) {
SpringApplication.run(AdminBaseApplication.class, args);
}
}
浏览器地址输入:http://localhost:8081/admin/sys_user/getUser?userId=1
回车,显示:{“id”:1,“username”:“admin”,“password”:null,“email”:“659961931@qq.com”,“mobile”:“15209831990”,“status”:1,“createUserId”:1,“createTime”:“2022-01-10T11:11:11.000+00:00”,“deptId”:1}