用SSM实现选项模糊查询(出现错误 Parameter index out of range (2 > number of parameters, which is 1))
这里我做了个简单的Demo,实现选项后模糊查询
采用HTML5+SpringBoot+SpringMVC+Mybatis+MySQL
Html代码:
<form action="http://localhost:8080/searchMemberByKey" method="post"> <select name="searchOption" id=""> <option value="name">姓名</option> <option value="phone">手机号</option> <option value="id_no">身份证号</option> <option value="email">会员邮箱</option> </select> <input type="text" value="搜索关键字" name="searchKey"> <input type="submit" value="搜索"> </form>
Controller代码:
@Controller public class MemberController { @Autowired MemberService memberService; @RequestMapping(value = "searchMemberByKey",method = RequestMethod.POST) @ResponseBody public List<Member> getMemberListByKey(HttpServletRequest request){ String searchOption = request.getParameter("searchOption"); String searchKey = request.getParameter("searchKey"); List<Member> members = new ArrayList<Member>(); members = memberService.searchMember("member_" + searchOption,searchKey); return members; } }
Service代码:
@Service public class MemberServiceImpl implements MemberService { @Autowired MemberMapper memberMapper; @Override public List<Member> searchMember(String searchOption,String searchKey) { List<Member> members = new ArrayList<Member>(); members = memberMapper.getMemberListByKey(searchOption,searchKey); return members; } }
Mapper代码:
//模糊查询对象列表 @Select("SELECT * FROM member WHERE ${search_option} LIKE '%" + "${search_key}" + "%'") List<Member> getMemberListByKey(@Param("search_option")String searchOption,@Param("search_key")String searchKey);
MySQL:

最开始使用#{ },出现 Parameter index out of range (2 > number of parameters, which is 1) 错误,
原因是因为,#{ } 带单引号,${ } 不带单引号,将#换成$即可解决

SQL语句的查询条件是:选项+LIKE ‘% 搜索关键字 %’
修改后成功运行


浙公网安备 33010602011771号