mysql - 如何在 SpringBoot-MyBatis-MySQL 中使用 SelectById(object_id) 获取特定对象?
问题描述
我设法通过在 SpringBoot-MyBatis 后端创建一个 SELECT 语句来“获取所有对象”,例如:
AppRestController.java
//get full list of actors
@GetMapping("/actors")
public List<Actor> selectAllActors(){
return actorMapper.selectAllActors();
}
当您在浏览器中键入“localhost:9090/actors”时,它将返回我的 MySQL 数据库中的所有参与者对象。那挺好的。现在我想把它的复杂性提高一个档次。
我想通过它的 actor_id 来获取一个对象,例如:
//get specific actor by actor_id. this is where im stuck
@GetMapping("/actors/id")
public Actor selectActorById(int id){
return actorMapper.selectActorById(id);
}
注意我的@GetMapping。我想要做的是,当我在浏览器中键入“ localhost:9090/actors/1 ”之类的内容时,它将从数据库中返回 id = 1 的 actor 对象,依此类推。
以下是相关文件。
ActorMapper.xml
<mapper namespace="com.helios.mybatissakila.mappers.ActorMapper">
<resultMap id="ActorResultMap" type="Actor">
<id column="actor_id" property="actor_id" jdbcType="INTEGER"/>
<result column="first_name" property="first_name" />
<result column="last_name" property="last_name" />
<result column="last_update" property="last_update" />
</resultMap>
<select id="selectAllActors" resultMap="ActorResultMap">
select * from actor
</select>
<select id="selectActorById" resultMap="ActorResultMap">
select * from actor where actor_id = #{actor_id}
</select>
</mapper>
ActorMapper.java
@Mapper
public interface ActorMapper {
//this is now working
List <Actor> selectAllActors();
//this is where im stuck
Actor selectActorById(int id);
}
谢谢你的帮助。 更新:
所以我确实改变了
@GetMapping("/actors/id")
public Actor selectActorById(int id){
return actorMapper.selectActorById(id);
}
到
@GetMapping("/actors/{id}")
public Actor selectActorById(Integer id){
return actorMapper.selectActorById(id);
}
显然,没有错误,但我得到一个空白屏幕。为什么?我的 MySQL 数据库中有一个数据,其 actor_id 等于 1。
解决方案
更改您的获取映射如下:
@GetMapping("/actors/{id}")
public Actor selectActorById(@PathVariable(name="id") int id){
return actorMapper.selectActorById(id);
}
您{id}
将是路径变量,将映射到id
方法的参数
推荐阅读
- typescript - 在 Typescript 中推断同级的类型
- typescript - 如何在 tsify 和 watchify 中使用 require 函数和 TypeScript 模块?
- github - Github Action:如何确保服务器正常运行?
- xml - XML 元素与 DTD 不匹配
- android - 如何使扩展的浮动操作按钮显示在底部工作表的底部?
- c# - 将图表动态添加到 Windows 窗体 - 显示为空白
- angular - ng 测试运行因 tsconfig 路径映射而失败
- javascript - 为什么 let 和 var 在这个闭包中产生不同的结果?
- lua - Lua - Love2d 没有响应?
- java - 获取非 Spring Java 应用的详细 Metrics 数据