RestController mybatis
时间: 2023-06-22 09:20:04 浏览: 92
mybatis
以下是一个使用 `MyBatis` 和 `RestController` 的示例:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public List<User> getUsers() {
return userService.getAllUsers();
}
@GetMapping("/user/{id}")
public User getUserById(@PathVariable("id") Long userId) {
return userService.getUserById(userId);
}
@PostMapping("/user")
public User createUser(@RequestBody User user) {
userService.createUser(user);
return user;
}
@PutMapping("/user/{id}")
public User updateUser(@PathVariable("id") Long userId, @RequestBody User user) {
user.setId(userId);
userService.updateUser(user);
return user;
}
@DeleteMapping("/user/{id}")
public void deleteUser(@PathVariable("id") Long userId) {
userService.deleteUser(userId);
}
}
```
在这个示例中,我们使用了 `@RestController` 注解来定义一个控制器类 `UserController`,这个类提供了 5 个 API 接口:
- `/api/users`:获取所有用户列表
- `/api/user/{id}`:根据用户 ID 获取用户信息
- `/api/user`:创建一个新用户
- `/api/user/{id}`:根据用户 ID 更新用户信息
- `/api/user/{id}`:根据用户 ID 删除用户
我们使用了 `@Autowired` 注解来注入 `UserService` 对象,该对象封装了对数据库的操作。在每个 API 接口的处理方法中,我们调用了 `UserService` 中的方法来完成对数据库的操作,并将返回的结果转换为 JSON 格式返回给客户端。在 `createUser` 和 `updateUser` 方法中,我们使用了 `@RequestBody` 注解来获取客户端传递过来的 JSON 数据,并将其转换为 `User` 对象。
在 `UserService` 中,我们使用了 `MyBatis` 来完成对数据库的操作,以下是一个简单的 `UserMapper` 接口和 `UserMapper.xml` 文件示例:
```java
public interface UserMapper {
List<User> getAllUsers();
User getUserById(Long id);
void createUser(User user);
void updateUser(User user);
void deleteUser(Long id);
}
```
```xml
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="getAllUsers" resultType="com.example.demo.entity.User">
select * from user
</select>
<select id="getUserById" parameterType="java.lang.Long" resultType="com.example.demo.entity.User">
select * from user where id = #{id}
</select>
<insert id="createUser">
insert into user(name, age, email) values(#{name}, #{age}, #{email})
</insert>
<update id="updateUser">
update user set name = #{name}, age = #{age}, email = #{email} where id = #{id}
</update>
<delete id="deleteUser">
delete from user where id = #{id}
</delete>
</mapper>
```
在 `UserMapper` 接口中定义了 5 个方法,分别对应了 5 个 API 接口的操作。在 `UserMapper.xml` 文件中,我们使用 SQL 语句定义了每个方法的操作,并使用 `#{}` 占位符来引用方法参数的值。通过 `namespace` 属性,我们将 `UserMapper` 接口与 `UserMapper.xml` 文件关联起来,使得 `MyBatis` 能够找到对应的 SQL 语句。
阅读全文