//按照手机号或者会员卡号进行多种方式的查询,解决方法: //比如按照id或者名字进行多种方式的查询:
//在xml文件中书写代码: <!--根据id或者name进行查询信息--> <select id="selectAllByIdAndTel" parameterType="com.kude.pojo.User" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from user <where> //注意这个if test中的userId和name,这两个字段是user实体类中的变量,and 后面的User_id和Name是数据库User表中的字段 <if test="userId!= null and userId!=''"> and User_id=#{userId} </if> <if test="name!= null and name!=''"> and Name LIKE '%' #{name} '%' </if> </where> </select>
//Servcie层 //我这个写的时候是按照分页格式写的,实际上查询出来的一般是单条数据 ServerResponse<Pager> selectAllByIdAndTel(User user,int curentPageIndex,int countPerpage); // ServiceImpl实现层
@Override public ServerResponse<Pager> selectAllByIdAndTel(User user,int curentPageIndex,int countPerpage) { UserExample example=new UserExample(); UserExample.Criteria criteria=example.createCriteria(); Pager pager=new Pager(); List<User> users=userMapper.selectAllByIdAndTel(user); if(users.size()>0){//判断是否含有数据 pager.setBigList(users); pager.setCurentPageIndex(curentPageIndex);//当前页数 pager.setCountPerpage(countPerpage);//总页数 ServerResponse serverResponse=ServerResponse.createBySuccess(pager.getSmallList(),"查询成功",users.size()); return serverResponse; }else { return ServerResponse.createByErrorMessage("查询失败"); } } //Controller控制器 @RequestMapping("/test/selectAllByIdAndTel.do") @ResponseBody public ServerResponse<Pager> selectAllByIdAndTel(User user, @RequestParam(value = "curentPageIndex", defaultValue = "1") int curentPageIndex, @RequestParam(value = "countPerpage", defaultValue = "10") int countPerpage){
return testService.selectAllByIdAndTel(user,curentPageIndex,countPerpage); }
//进行测试的接口: http://localhost:8080/user//test/selectAllByIdAndTel.do?name=张三 或者测试 http://localhost:8080/user//test/selectAllByIdAndTel.do?userId=1 特别注意接口中的name和userId也是属于User实体类中的变量。