程序员子龙(Java面试 + Java学习) 程序员子龙(Java面试 + Java学习)
首页
学习指南
工具
开源项目
技术书籍

程序员子龙

Java 开发从业者
首页
学习指南
工具
开源项目
技术书籍
  • 基础

  • JVM

  • Spring

  • 并发编程

  • Mybatis

    • mybatis-plus超详细讲解
    • MyBatis-Plus 流式查询
    • MyBatis-Plus 分页查询以及自定义sql分页
    • 使用mybatis逆向生成项目
    • SpringBoot整合Mybatis-plus
      • 简介
      • 引入依赖
      • 配置文件
      • 启动类
      • 定义表的实体
      • Mapper层
      • Service层
      • 总结
    • SpringBoot 集成 mybatis-plus,报:Invalid bound statement (not found) 异常,详细解决方案
    • Springboot、MyBatis-Plus 多数据源支持
    • Mybatis Plus官方分库分表神器,一个依赖轻松搞定!
    • MyBatis 动态 SQL 最全教程,这样写 SQL 太优雅了!
  • 网络编程

  • 数据库

  • 缓存

  • 设计模式

  • 分布式

  • 高并发

  • SpringBoot

  • SpringCloudAlibaba

  • Nginx

  • 面试

  • 生产问题

  • 系统设计

  • 消息中间件

  • Java
  • Mybatis
xugaoyi
2024-01-29
目录

SpringBoot整合Mybatis-plus

# 简介

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

# 引入依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>
1
2
3
4
5

# 配置文件

server:
  port: 8080
 
 
spring:
  datasource:
  
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&useSSL=FALSE
    username: root 
    password: 123456 
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
 
# mybatis-plus相关配置
mybatis-plus:
  # xml扫描
  mapper-locations: classpath:mapper/*.xml
  # 以下配置均有默认值,可以不设置
  global-config:
    db-config:
      #主键类型 AUTO:"数据库ID自增" 
      id-type: auto
      #字段策略 IGNORED:"忽略判断"  NOT_NULL:"非 NULL 判断")  NOT_EMPTY:"非空判断"
      field-strategy: NOT_EMPTY
      #数据库类型
      db-type: MYSQL
  configuration:
    # 是否开启自动驼峰命名规则映射
    map-underscore-to-camel-case: true
    # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
    call-setters-on-nulls: true
    # sql打印
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

# 启动类

@SpringBootApplication
@MapperScan("com.demo.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
1
2
3
4
5
6
7
8

# 定义表的实体

@TableName("users")
@Data
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    private Long id;
    private String userName;
    private String passWord;
    private String nickName;
}
1
2
3
4
5
6
7
8
9
10

# Mapper层

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.domain.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {

}
1
2
3
4
5
6
7
8

# Service层

import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.domain.User;

public interface UserService  extends  IService<User>{

    public void saveUser(User user);
    
    List<User> getUserList(User user);
}

1
2
3
4
5
6
7
8
9
10

实现类

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.IService;

@Service
public class UserServiceImpl implements UserService {
    
     public void saveUser(User user) {
         save(user);
     }
    
       @Override
    public List<User> getUserList(User user) {

        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getNickName,"jack");
        return getBaseMapper().selectList(queryWrapper);

    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

mybatis-plus 只是mybatis的增强版,它不影响mybatis的使用,我们可以写我们自定的方法以及sql,接下来我们看一个例子:

@Mapper
public interface UserMapper extends BaseMapper<User> {


    List<User> getList(@Param("user") User user);

}
1
2
3
4
5
6
7
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.demo.dao.UserMapper" >

 select  * from Users

        <where>
            <if test="user.userName != null">
                and user_name = #{user.userName}
            </if>
        </where>

</mapper>
1
2
3
4
5
6
7
8
9
10
11
12
13

温馨提示:xml第一行不要有空行,否则会报错。

# 总结

今天只是使用 SpringBoot 整合 Mybatis-plus 的初级教程,后续还会更新一些高级用法。

上次更新: 2024/01/30, 15:08:57
使用mybatis逆向生成项目
SpringBoot 集成 mybatis-plus,报:Invalid bound statement (not found) 异常,详细解决方案

← 使用mybatis逆向生成项目 SpringBoot 集成 mybatis-plus,报:Invalid bound statement (not found) 异常,详细解决方案→

最近更新
01
一个注解,优雅的实现接口幂等性
11-17
02
MySQL事务(超详细!!!)
10-14
03
阿里二面:Kafka中如何保证消息的顺序性?这周被问到两次了
10-09
更多文章>
Theme by Vdoing | Copyright © 2024-2024

    辽ICP备2023001503号-2

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式