org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are

错误如下:
严重: Servlet.service() for servlet dispatcher threw exception
org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [param1, user]
at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:202)
at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:79)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:93)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)

··················

Mapper配置文件:

<insert id="insertUser" parameterType="user">
  insert into user(username,password) values(#{username},#{password})
  </insert>
Mapper接口:
public interface UserMapper {
public User selectUser(int id);
public int insertUser(@Param("user") User user);
}
调用接口中insertUser方法:

int result=userMapper.insertUser(user);
原因: @Param注解 是在传递多个参数的时候才用的,通过该注解去定义映射器的参数名称,这样可以得到更好的可读性。在本例子接口中insertUser()只定义了一个参数并用该注解修饰,导致在传递参数的时候映射器中的参数映射找不到与自己名称相同的参数,从而出错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值