【mybatis】mybatis-plus_CRUD具体操作

1、环境准备

1. 环境准备

1. 引入依赖

在Spring Boot项目的pom.xml文件中引入MyBatis-Plus及其数据库驱动的依赖。这里以MySQL为例:

<!-- Spring Boot Starter Web -->  
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-web</artifactId>  
</dependency>  
  
<!-- MyBatis-Plus Starter -->  
<dependency>  
    <groupId>com.baomidou</groupId>  
    <artifactId>mybatis-plus-boot-starter</artifactId>  
    <version>你的版本号</version>  
</dependency>  
  
<!-- MySQL 驱动 -->  
<dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <scope>runtime</scope>  
</dependency>  
  
<!-- Lombok(可选,用于简化实体类) -->  
<dependency>  
    <groupId>org.projectlombok</groupId>  
    <artifactId>lombok</artifactId>  
    <optional>true</optional>  
</dependency>

2. 配置数据库

application.ymlapplication.properties中配置数据库连接信息:

spring:  
  datasource:  
    url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC  
    username: root  
    password: your_password  
    driver-class-name: com.mysql.cj.jdbc.Driver  
  
mybatis-plus:  
  mapper-locations: classpath:/mappers/*.xml  
  type-aliases-package: com.example.demo.entity  
  global-config:  
    db-config:  
      id-type: auto  
      logic-delete-value: 1  
      logic-not-delete-value: 0

3. 创建实体类

使用Lombok简化代码,例如:

import com.baomidou.mybatisplus.annotation.TableId;  
import com.baomidou.mybatisplus.annotation.TableName;  
import lombok.Data;  
  
@Data  
@TableName("user")  
public class User {  
    @TableId  
    private Long id;  
    private String name;  
    private Integer age;  
    // 其他字段...  
}

4. 创建Mapper接口

继承BaseMapper来简化开发:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;  
import com.example.demo.entity.User;  
  
public interface UserMapper extends BaseMapper<User> {  
    // 这里可以添加自定义的Mapper方法,如果不需要可以留空  
}

5. 创建Service层

如果你需要,可以创建一个Service层来处理业务逻辑:

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;  
import com.example.demo.entity.User;  
import com.example.demo.mapper.UserMapper;  
  
public class UserService extends ServiceImpl<UserMapper, User> {  
    // 这里可以添加自定义的业务逻辑方法  
}

6. 创建Controller层

创建RESTful API来处理HTTP请求:

import com.example.demo.entity.User;  
import com.example.demo.service.UserService;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.*;  
  
@RestController  
@RequestMapping("/users")  
public class UserController {  
  
    @Autowired  
    private UserService userService;  
  
    @GetMapping("/")  
    public List<User> listAllUsers() {  
        return userService.list();  
    }  
  
    @PostMapping("/")  
    public User createUser(@RequestBody User user) {  
        userService.save(user);  
        return user;  
    }  
  
    @GetMapping("/{id}")  
    public User getUserById(@PathVariable Long id) {  
        return userService.getById(id);  
    }  
  
    @PutMapping("/{id}")  
    public User updateUser(@PathVariable Long id, @RequestBody User user) {  
        user.setId(id);  
        userService.updateById(user);  
        return user;  
    }

2、增加

import com.example.demo.entity.User;  
import com.example.demo.service.UserService;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.PostMapping;  
import org.springframework.web.bind.annotation.RequestBody;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController  
@RequestMapping("/users")  
public class UserController {  
  
    @Autowired  
    private UserService userService;  
  
    @PostMapping("/")  
    public User createUser(@RequestBody User user) {  
        userService.save(user); // 调用Service层的save方法,实际调用的是MyBatis-Plus的插入操作  
        return user;  
    }  
}

3、删除

// 删除单个用户  
@DeleteMapping("/{id}")  
public String deleteUser(@PathVariable Long id) {  
    userService.removeById(id); // 或者使用userMapper.deleteById(id)直接调用Mapper  
    return "User deleted successfully";  
}  
  
// 批量删除用户(示例)  
@DeleteMapping("/batch")  
public String deleteUsers(@RequestBody List<Long> ids) {  
    userService.removeByIds(ids); // 批量删除  
    return "Users deleted successfully";  
}

4、修改

// 更新用户信息  
@PutMapping("/{id}")  
public User updateUser(@PathVariable Long id, @RequestBody User user) {  
    user.setId(id); // 确保用户ID被设置  
    userService.updateById(user); // 调用Service层的updateById方法  
    return user;  
}

5、查找

// 查询单个用户  
@GetMapping("/{id}")  
public User getUserById(@PathVariable Long id) {  
    return userService.getById(id); // 调用Service层的getById方法  
}  
  
// 查询所有用户  
@GetMapping("/")  
public List<User> getAllUsers() {  
    return userService.list(); // 调用Service层的list方法,实际调用的是MyBatis-Plus的查询所有操作  
}  
  
// 根据条件查询用户(示例,需要自定义Mapper或Service方法)  
@GetMapping("/search")  
public List<User> searchUsers(@RequestParam String name) {  
    // 这里仅为示例,实际中可能需要自定义Mapper接口中的方法  
    // return userService.searchByName(name); // 假设有这样一个自定义方法  
    // ... 实际实现中,你可能需要编写一个自定义的Mapper方法并使用@Select注解来定义SQL查询  
}
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值