关于basemapper的报错

关于使用basemapper的错误,主要报错为:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.mysqlplus.jiekou1.UserbookDao.selectById
有兄弟知道这个报错怎么解决吗,网上找了一些方法都不行

img

img

prizeDao 方法头上加上@Repository 注解。
另外你方法都注释了,当然调用不到了。
另外提个建议:你可以创建controller层,然后去测试你的接口。你这种大概率会空指针。

你需要在启动类上面加个@MapperScan注解,并指定dao的包路径

【以下回答由 GPT 生成】

这个问题发生的原因是basemapper库无法找到指定的SQL语句对应的映射。这个问题可以通过以下几个步骤来解决:

  1. 确保在basemapper库中已经定义了名为UserbookDao的映射接口,并且该接口下存在名为selectById的方法。例如:
@Repository
public interface UserbookDao extends BaseMapper<Userbook> {
    Userbook selectById(Long id);
}
  1. 确保在MyBatis XML配置文件中正确引入了UserbookDao的映射文件,并且该映射文件中已经配置了selectById的SQL语句。例如:
<mapper namespace="com.example.mysqlplus.jiekou1.UserbookDao">
    <select id="selectById" parameterType="java.lang.Long" resultType="com.example.mysqlplus.entity.Userbook">
        SELECT * FROM userbook WHERE id = #{id}
    </select>
</mapper>
  1. 确认你的代码中已经正确注入了UserbookDao,并且调用了selectById方法。例如:
@Autowired
private UserbookDao userbookDao;

...

Userbook userbook = userbookDao.selectById(1L);

如果你已经按照以上步骤进行了操作,但仍然遇到报错信息,请确保: - basemapper库已经正确引入,并且库版本与你使用的MyBatis版本兼容。 - basemapper库的配置文件已经正确配置。

如果以上步骤都确认无误,但问题依然存在,请将你的代码和配置文件以及报错信息提供给开发人员进行进一步分析和排查。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^