使用mybatis查询数据库时where多条件时遇到的问题
@Select("select * from user where username = #{username} and password = #{password}")
User findUser(String username, String password);
然后Controller中代码
User user = serviceUser.findUser(username, password);
这时候运行会报错500
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException:
等
解决方案:
查看sql语句是否错误
select * from user where username = #{username} and password = #{password}
sql语句并没错误,当前使用的springMVC框架也可能是前后端参数不一致导致controller并没有获取到参数,检查后也没有错误。
在dao的接口上参数前打上@Parm()注解,这里的参数值要和sql语句中的属相对应。
@Select("select * from user where username = #{username} and password = #{password}")
//多条件查询需要Param注解
User findUser(@Param("username") String username, @Param("password") String password);
重新部署tomcat服务器
控制台打印出参数
成功!