SpringBoot整合MyBatisPlus

831 阅读2分钟

前言:本文通过简单介绍Spring Boot和MyBatis-Plus框架整合,提升与数据库的交互作用。MyBatis-Plus持久层框架技术相比MyBatis更加强大,效率更高,内置多个增删改查方法,十分适合与Spring Boot组合使用。

MyBatisPlus官网

导入依赖

 <!-- MyBatisPlus -->
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>Latest Version</version>
 </dependency>
 <!-- mysql 依赖-->
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
 </dependency>
 <!-- lombok -->
 <dependency>
     <groupId>org.projectlombok</groupId>
     <artifactId>lombok</artifactId>
 </dependency>

设计数据库

 SET FOREIGN_KEY_CHECKS=0;
 ​
 DROP TABLE IF EXISTS `user`;
 CREATE TABLE `user` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `username` varchar(32) NOT NULL,
   `password` varchar(32) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
 ​
 INSERT INTO `user` VALUES ('1', 'jack', '123');
 INSERT INTO `user` VALUES ('2', 'tom', '123');

配置application.yml

 server:
   port: 8888    # 端口号
 spring
   datasource:
     driver-class-name: com.mysql.jdbc.Driver    # 驱动名
     url: jdbc:mysql://127.0.0.1:3306/springboot_demo?useUnicode=true&characterEncoding=UTF8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai    # 数据库连接url
     username: root  # 用户名
     password: root  # 密码

创建实体类pojo

User.java

 @Data // 需要在idea中安装lombok插件
 public class User {
     private Integer id;
     private String username;
     private String password;
 }

创建mapper

继承BaseMapper<User>,内置默认有单表的增删改查方法

UserMapper.java

 public interface UserMapper extends BaseMapper<User> {
 }

修改启动类

MyBatisPlusDemoApplication.java

 @SpringBootApplication
 @MapperScan("com.tom.mapper")   // 让Spring扫描和加载到mapper
 public class MyBatisPlusDemoApplication {
     public static void main(String[] args) {
         SpringApplication.run(MyBatisPlusDemoApplication.class, args);
     }
 }

创建service

UserService.java接口

 public interface UserService {
     List<User> queryUserList();  // 查询所有用户
 }

UserServiceImpl.java 实现类

 @Service  //将业务对象实例化 加入到SpringIOC容器中
 public class UserServiceImpl implements UserService {
     @Autowired
     private UserMapper userMapper;
     
     // 查询所有用户
     @Override
     public List<User> queryUserList() {
         return userMapper.selectList(null); // mapper内置方法
     }
 }

创建controller

Spring中controller注解区别

使用注解@RestController所有方法返回的数据都是json格式的字符串(基于REST的web服务控制器)

使用注解@Controller是向前端响应html静态页面(传统Spring MVC视图控制器)

两者关键区别是HTTP响应体的创建方式

UserController.java

@RestController  //将该对象加入到SpringIOC容器中
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 查询用户表所有用户列表
     * @return
     */
    @GetMapping("/userList")
    public List<User> queryUserList(){
        return userService.queryUserList();
    }
}

打印SQL日志

方法一

logging:
  level:
    com.tom.mapper: debug

方法二

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志