下面是一个使用 MyBatis-Plus 的基本例子
在 pom.xml
文件中添加 MyBatis-Plus 的依赖:
<dependencies>
<!-- MyBatis-Plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.3</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
在 application.properties
或 application.yml
中配置数据库连接信息:
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#对于 MySQL 8.x 版本,你需要在连接 URL 中配置时区。此外,MySQL 8.x 使用的驱动程序类名也发生了变化。(5.x及以下版本使用的驱动为com.mysql.jdbc.Driver)
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user") // 表名
public class User {
@TableId(type = IdType.AUTO) // 主键自增
private Long id;
private String username;
private String password;
}
在这个例子中,使用了 Lombok 注解 @Data
简化了实体类的编写,@TableId
标记了主键,并通过 type = IdType.AUTO
指定了主键自增。
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
/**
此处不用添加@Mapper注解,MyBatis-Plus 在运行时会扫描 BaseMapper 的子接口,
而不需要在接口上加 @Mapper 注解。这是因为 MyBatis-Plus 内部已经做了相应的处理,
使得接口被识别为 Mapper 接口,但要在Springboot启动程序上添加包扫描注解
@MapperScan("对应包名")
*/
public interface UserMapper extends BaseMapper<User> {
// 这里可以添加自定义的查询方法
}
UserMapper
继承了 BaseMapper
接口,无需写具体的 SQL 语句,MyBatis-Plus 会自动生成。
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.stereotype.Service;
@Service
public class UserService extends ServiceImpl<UserMapper, User> {
// 这里可以添加业务逻辑
}
UserService
继承了 ServiceImpl
类,实现了基本的增删改查方法。
package com.example.demo.controller;
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("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getById(id);
}
@PostMapping
public String saveUser(@RequestBody User user) {
userService.save(user);
return "success";
}
@PutMapping
public String updateUser(@RequestBody User user) {
userService.updateById(user);
return "success";
}
@DeleteMapping("/{id}")
public String deleteUser(@PathVariable Long id) {
userService.removeById(id);
return "success";
}
}
以上是一个简单的 MyBatis-Plus 的使用例子