出现这个问题的原因:
传递多个参数时,如TbUser selectUser(String username,String password),mybatis自动将这些值封装为map,Available parameters are [0, 1, param1, param2],0,1应当是keyname,当同时传入多个基本类型(int,String,Date)的参数就会报错。
解决:
1.
将sql中的#{username} #{password}改成#{0} #{1}
2.
把多个参数封装直接封装在map中:
public TbUser login(HashMap<String,String) map);
3.
加上@Param注解
TbUser selectUser(@Param(value="username") String username,@Param(value="password") String password);
本文探讨了在使用MyBatis框架时遇到的多参数传递问题,详细解析了错误产生的原因,并提供了三种解决方案:修改SQL映射文件中的参数引用方式、使用Map封装参数和利用@Param注解明确参数名称。
2万+

被折叠的 条评论
为什么被折叠?



