MyBatis Plus构建一个简单的项目攻略
MyBatis Plus 简化了MyBatis的操作,可以快速构建一个简单的项目。本攻略将带你从创建项目,到配置MyBatis Plus及其插件、编写实体类、mapper接口和service层代码,最终完成一个简单的CRUD操作。
以下为该攻略的具体步骤:
1. 创建项目
使用maven创建一个简单的Spring Boot项目。
2. 引入依赖
在pom.xml文件中引入以下依赖:
<!--Spring Boot 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.3</version>
</dependency>
<!--Mybatis Plus 依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<!--MySQL 依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
3. 配置MyBatis Plus及其插件
在Spring Boot 的配置文件中(application.yml 或 application.properties)添加以下配置:
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml # mapper文件的位置
global-config:
db-config:
table-prefix: tb_ # 表名前缀
configuration:
# 驼峰转下划线,开启自动填充
map-underscore-to-camel-case: true
use-generated-keys: true
同时,我们可以添加一些MyBatis Plus的插件:
- 分页插件:MyBatis-Plus自带分页插件,不需要额外引入。
mybatis-plus:
configuration:
# 分页插件
plugins:
- com.baomidou.mybatisplus.extension.plugins.pagination.PageInterceptor
- SQL性能分析插件:MyBatis-Plus自带SQL性能分析插件,不需要额外引入。
mybatis-plus:
configuration:
# SQL性能分析插件
plugins:
- com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor
- 乐观锁插件:使用 MyBatis-Plus 的乐观锁插件,避免多人同时修改同一记录时产生冲突。
mybatis-plus:
configuration:
# 乐观锁插件
plugins:
- com.baomidou.mybatisplus.extension.plugins.optimisticlocker.OptimisticLockerInterceptor
4. 编写实体类
编写一个User实体类,用于映射数据库中的user表:
@Data
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String username;
private String password;
}
注解@TableId
和@TableField
为MyBatis Plus的注解,用于生成SQL语句时自动转换列名。
5. 编写Mapper接口
MyBatis Plus推荐使用接口方式操作数据库,而不是使用XML文件。因此,需要编写一个继承BaseMapper的接口UserMapper,并使用一些默认的方法实现常规的增删改查操作。
public interface UserMapper extends BaseMapper<User> {
}
6. 编写Service层代码
在编写Service层代码之前,需要将UserMapper注入到UserService中:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Autowired
private UserMapper userMapper;
}
然后,对于常规的增删改查操作,可以直接使用ServiceImpl中提供的方法进行实现,例如:
@Override
public boolean addUser(User user) {
return this.save(user);
}
7. 使用示例
创建一个UserController,定义以下API进行CRUD操作,以添加用户为例:
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/user")
public Result addUser(@RequestBody User user) {
boolean success = userService.addUser(user);
return ResultGenerator.genResult(success ? ResultEnums.SUCCESS : ResultEnums.FAIL);
}
}
在浏览器中访问http://localhost:8080/user
,使用POST方式提交一个JSON格式的请求体,即可向数据库中添加一条用户记录。
另外,大多数的CRUD操作也可以通过其他方法实现,例如:
// 查询所有用户
@GetMapping("/user")
public List<User> listUser() {
return userService.list();
}
// 根据ID查询用户
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id) {
return userService.getById(id);
}
// 根据ID更新用户信息
@PutMapping("/user/{id}")
public Result updateUser(@PathVariable("id") Integer id, @RequestBody User user) {
user.setId(id);
boolean success = userService.updateById(user);
return ResultGenerator.genResult(success ? ResultEnums.SUCCESS : ResultEnums.FAIL);
}
// 根据ID删除用户
@DeleteMapping("/user/{id}")
public Result deleteUser(@PathVariable("id") Integer id) {
boolean success = userService.removeById(id);
return ResultGenerator.genResult(success ? ResultEnums.SUCCESS : ResultEnums.FAIL);
}
以上代码示例仅供参考,使用场景较简单。在实际项目中,可以根据需要进行自由组合和扩展。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis Plus构建一个简单的项目的实现 - Python技术站