首页 > 解决方案 > 如何在 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。

在此处输入图像描述

标签: mysqlspringspring-bootmybatisibatis

解决方案


更改您的获取映射如下:

@GetMapping("/actors/{id}")
public Actor selectActorById(@PathVariable(name="id") int id){
     return actorMapper.selectActorById(id);
}

{id}将是路径变量,将映射到id方法的参数


推荐阅读