欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot整合MyBatis-Plus實(shí)現(xiàn)CRUD操作的示例代碼

 更新時(shí)間:2025年04月09日 09:45:20   作者:小小鴨程序員  
本文主要介紹了Spring Boot整合MyBatis-Plus實(shí)現(xiàn)CRUD操作,可以快速實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查操作,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文將演示如何在Spring Boot項(xiàng)目中整合MyBatis-Plus框架,快速實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查操作。相較于原生MyBatis,MyBatis-Plus提供了更簡(jiǎn)潔的API和自動(dòng)化功能。

環(huán)境準(zhǔn)備

  • JDK 1.8+
  • MySQL 5.7+
  • Spring Boot 2.7.x
  • MyBatis-Plus 3.5.x

實(shí)現(xiàn)步驟

1. 創(chuàng)建項(xiàng)目并添加依賴(lài)

通過(guò)Spring Initializr創(chuàng)建項(xiàng)目時(shí)勾選:

  • Spring Web
  • MySQL Driver

手動(dòng)添加MyBatis-Plus依賴(lài)(pom.xml):

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

2. 配置數(shù)據(jù)庫(kù)連接(application.yml)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mp_demo?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 開(kāi)啟SQL日志
  global-config:
    db-config:
      id-type: assign_id # 主鍵生成策略(使用雪花算法)

3. 創(chuàng)建實(shí)體類(lèi)

@Data
@TableName("t_user") // 指定表名
public class User {
    @TableId(type = IdType.ASSIGN_ID) // 雪花算法生成ID
    private Long id;
    private String username;
    private Integer age;
    private String email;
}

4. 創(chuàng)建Mapper接口

@Mapper
public interface UserMapper extends BaseMapper<User> {
    // 繼承BaseMapper后已包含基礎(chǔ)CRUD方法
}

5. 實(shí)現(xiàn)Service層(可選增強(qiáng))

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    // 插入
    public int addUser(User user) {
        return userMapper.insert(user);
    }

    // 查詢(xún)?nèi)?
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }

    // 條件查詢(xún)
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    // 更新
    public int updateUser(User user) {
        return userMapper.updateById(user);
    }

    // 刪除
    public int deleteUser(Long id) {
        return userMapper.deleteById(id);
    }
}

6. 添加分頁(yè)插件配置

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

7. 創(chuàng)建Controller

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping
    public String add(@RequestBody User user) {
        userService.addUser(user);
        return "插入成功";
    }

    @GetMapping("/{id}")
    public User getById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @GetMapping("/list")
    public List<User> list() {
        return userService.getAllUsers();
    }

    @PutMapping
    public String update(@RequestBody User user) {
        userService.updateUser(user);
        return "更新成功";
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable Long id) {
        userService.deleteUser(id);
        return "刪除成功";
    }
}

測(cè)試示例

插入數(shù)據(jù)(POST /user)

{
    "username": "張三",
    "age": 25,
    "email": "zhangsan@example.com"
}

分頁(yè)查詢(xún)(需自定義方法)

// 在Mapper中添加:
@Select("SELECT * FROM t_user WHERE age > #{age}")
Page<User> selectPageByAge(Page<User> page, @Param("age") Integer age);

// Controller調(diào)用:
@GetMapping("/page")
public Page<User> page(@RequestParam(defaultValue = "1") Integer pageNum,
                      @RequestParam(defaultValue = "10") Integer pageSize) {
    Page<User> page = new Page<>(pageNum, pageSize);
    return userMapper.selectPage(page, null);
}

關(guān)鍵特性說(shuō)明

自動(dòng)生成SQL:無(wú)需編寫(xiě)XML文件,基礎(chǔ)CRUD自動(dòng)實(shí)現(xiàn)

主鍵策略:支持AUTO(數(shù)據(jù)庫(kù)自增)、ASSIGN_ID(雪花算法)、UUID

條件構(gòu)造器:通過(guò)QueryWrapper構(gòu)建復(fù)雜查詢(xún)條件

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("username", "張").lt("age", 30);
userMapper.selectList(wrapper);

常見(jiàn)問(wèn)題排查

啟動(dòng)時(shí)報(bào)錯(cuò)找不到Mapper

  • 確保啟動(dòng)類(lèi)添加@MapperScan("com.example.mapper")
  • 檢查Mapper接口是否標(biāo)注@Mapper注解

字段映射失敗

  • 檢查數(shù)據(jù)庫(kù)字段名是否符合駝峰轉(zhuǎn)下劃線規(guī)則
  • 使用@TableField(value = "db_column")指定字段映射

分頁(yè)失效

  • 確認(rèn)已添加分頁(yè)插件配置
  • 查詢(xún)方法參數(shù)必須為Page對(duì)象

擴(kuò)展建議

  • 使用代碼生成器快速生成Entity/Mapper/Service代碼
  • 結(jié)合LambdaQueryWrapper實(shí)現(xiàn)類(lèi)型安全的查詢(xún)條件
  • 通過(guò)@Version實(shí)現(xiàn)樂(lè)觀鎖功能

到此這篇關(guān)于Spring Boot整合MyBatis-Plus實(shí)現(xiàn)CRUD操作的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot MyBatis-Plus實(shí)現(xiàn)CRUD操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論