1. 用户实体Bean创建 首先,我们来定义一个简单的 `User` 实体类,包含基本的用户信息字段: ```java package com.example.demo.entity; import lombok.Data; @Data public class User { private Long id; private String username; private String password; private String email; } ``` 2. 编写配置文件 在 `application.yml` 中配置 MyBatis 和数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/yourdb?useSSL=false&serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.demo.entity ``` 3. 编写业务逻辑层接口和数据访问层接口及实现 数据访问层(DAO) 创建 `UserMapper` 接口,并在 `resources/mapper` 目录下创建对应的 XML 文件: ```java package com.example.demo.mapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface UserMapper { @Select("SELECT * FROM user") List<User> findAll(); @Insert("INSERT INTO user(username, password, email) VALUES(#{username}, #{password}, #{email})") int insert(User user); @Update("UPDATE user SET username=#{username}, password=#{password}, email=#{email} WHERE id=#{id}") int update(User user); @Delete("DELETE FROM user WHERE id=#{id}") int delete(Long id); } ``` 业务逻辑层(Service) 创建 `UserService` 接口和实现类: ```java package com.example.demo.service; import com.example.demo.entity.User; import java.util.List; public interface UserService { List<User> findAll(); User findById(Long id); void save(User user); void update(User user); void delete(Long id); } package com.example.demo.service.impl; import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> findAll() { return userMapper.findAll(); } @Override public User findById(Long id) { // 假设有一个方法可以按ID查找用户 return null; } @Override public void save(User user) { userMapper.insert(user); } @Override public void update(User user) { userMapper.update(user); } @Override public void delete(Long id) { userMapper.delete(id); } } ``` 4. 创建Controller 创建 `UserController` 类,提供 RESTful API 接口: ```java 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.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping public List<User> getAllUsers() { return userService.findAll(); } @PostMapping public void createUser(@RequestBody User user) { userService.save(user); } @PutMapping("/{id}") public void updateUser(@PathVariable Long id, @RequestBody User user) { user.setId(id); userService.update(user); } @DeleteMapping("/{id}") public void deleteUser(@PathVariable Long id) { userService.delete(id); } } ``` 5. 使用测试工具测试接口 使用 Postman 或类似的工具测试接口: - GET /users: 获取所有用户 - POST /users: 创建新用户 - PUT /users/{id}: 更新用户 - DELETE /users/{id}: 删除用户 额外需要注意的逻辑点 1. 事务管理:确保在业务逻辑层中使用 `@Transactional` 注解来管理事务,保证数据的一致性。 2. 异常处理:在 Controller 层添加全局异常处理器,统一处理各种异常情况,返回友好的错误信息。 3. 参数校验:在 Controller 层使用 `@Valid` 和 `@Validated` 注解对请求参数进行校验,确保传入的数据符合预期。 [2024-12-14 20:56:14 | AI写代码神器 | 976点数解答]