Error creating bean with name ‘XXXMapper‘ defined

在发现错误的时候逐层分析

从controller层开始,主要是查看对service的调用有无问题

注释为@Resource或者@autowired一般都不会出现问题,注意service是否正确调用,有次就发现了直接调用了service实现类

	@Resource
    private ITbShjLayerService tbShjLayerService;

controller没有问题的话就检查service

主要检查注释是否正确添加

@Service
public class ServiceImpl extends ServiceImpl<TbShjLayerMapper, TbShjLayer> implements IService {

其次检查mapper

本次项目使用的是mybatis,如果需要使用@Select注释写sql的话,那么要检查是否添加了@Mapper注释。

@Mapper
public interface TbOpinionInfoMapper extends BaseMapper<TbShjOpinionInfo> {
    @Select("SELECT c.*, b.USERNAME FROM (SELECT * FROM XX a WHERE a.XX_id=#{XXId,javaType=string,jdbcType=VARCHAR}) c INNER JOIN tbl_user_info b ON c.ct_user_id=b.USERID ORDER BY c.ct_date")
    List<XXVO> queryXXInfoByStoreId(@Param("XXId") String XXId);
}    

最后检查Mapper实现类

首先检查命名空间,必须保证正确并且与其他的mapper不重复,可以使用ctrl点击查看

namespace="com.xx.mapper.xxMapper"

检查方法id不能重复,返回类型和参数类型要正确

<select id="queryxxByxxId" resultType="int" parameterType="string">

最后检查sql语句本身,建议复制到数据库中运行,看看有无问题。

如果没有问题,那么要考虑是不是语句中直接使用了<或者>等特殊符号,如果使用了则需要更替为Java中对应的转义符,如:&gt。或者使用<![CDATA[ ]]> 避免被编译。

本次出现问题便是因为直接使用了>进行比较,在数据库中没有问题,但是在Java却无法编译。

在发现错误的时候系统的错误信息并不能直接让我发现错误,便把可能引发错误的Mapper、Service、Controller暂时注释,并一层一层放出来查找问题,最后才找到了该错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值