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

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

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

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

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

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

實現(xiàn)步驟

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

通過Spring Initializr創(chuàng)建項目時勾選:

  • Spring Web
  • MySQL Driver

手動添加MyBatis-Plus依賴(pom.xml):

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

2. 配置數(shù)據(jù)庫連接(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 # 開啟SQL日志
  global-config:
    db-config:
      id-type: assign_id # 主鍵生成策略(使用雪花算法)

3. 創(chuàng)建實體類

@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. 實現(xiàn)Service層(可選增強)

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

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

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

    // 條件查詢
    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. 添加分頁插件配置

@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 "刪除成功";
    }
}

測試示例

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

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

分頁查詢(需自定義方法)

// 在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)鍵特性說明

自動生成SQL:無需編寫XML文件,基礎(chǔ)CRUD自動實現(xiàn)

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

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

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

常見問題排查

啟動時報錯找不到Mapper

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

字段映射失敗

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

分頁失效

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

擴(kuò)展建議

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

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

相關(guān)文章

最新評論