mybatis报错:sql中有条件语句时出现属性没有getter的异常

Mybatis问题:在使用条件语句动态设置SQL语句时出现如下错误

Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'
at books.com.BooksApplicationTests.getBookTest(BooksApplicationTests.java:56)

解决方法:

在映射接口中,方法的中的参数添加@Param(“parameter name”)即可。

例子:

 映射接口:

public interface BookMapper {
Book getBookById(int id);
Book getBook(@Param("id") int id);
}
映射配置文件:
<select id="getBook" parameterType="int" resultType="books.com.boot.model.Book">
SELECT * FROM book
<where>
<if test="id>0">id=#{id}</if>
</where>
</select>

若映射配置文件这样写则不需要添加@Param注解
<select id="getBookById" parameterType="int" resultType="books.com.boot.model.Book">
SELECT * FROM book WHERE id=#{id}
</select>

转载于:https://www.cnblogs.com/ysp99/p/9288056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值