基于ssm的模糊查询,解决中文乱码后可查询中文关键字

9 篇文章 0 订阅
8 篇文章 0 订阅

模糊查询的实现基于之前实现增删改查功能的博客一博客二,可能里面的方法名和类名有所不同,但结构相同,换汤不换药。完成后的效果如下:
进入主页面:
在这里插入图片描述
搜索“1”
在这里插入图片描述
搜索“狗”
在这里插入图片描述
下面开始说明实现过程

在dao层的接口下添加:

    List<Pet> findPetByName(@Param("petName")String petName);

在mapper下的xml文件内添加数据库语句:

<select id="findPetByName" resultType="com.whut.beans.Pet" parameterType="Pet">
        SELECT * FROM pets WHERE petName LIKE CONCAT(CONCAT('%',#{petName},'%'))
</select>

在Service类添加:

    List<Pet> findPetByName(@Param("petName")String petName);

在impl文件下添加:

 @Override
    public List<Pet> findPetByName(String petName){
        return pd.findPetByName(petName);
    }

在comtroller文件下添加:

  @RequestMapping("/findPetByName.do")
  public ModelAndView findPetByName(@RequestParam(defaultValue="1") int page,@RequestParam(defaultValue="8")int size,Pet pet){
      System.out.println(pet.getPetName());
      List<Pet> pets = ps.findPetByName(pet.getPetName());
      PageInfo pageInfo_s = new PageInfo(pets);
      ModelAndView mv = new ModelAndView();
      mv.addObject("pageInfo_s", pageInfo_s);
      mv.setViewName("search_result");//search_result
      return mv;

在主页显示页面选择合适位置添加搜索按钮以及url:

 <!-- 搜索  -->
                            <div class="tools"  id="search" style="width: 80%; display:inline-block;vertical-align: top;">
                                <ul class="searchform">       
                                    <li>
                                        <form action="${pageContext.request.contextPath}/pet/findPetByName.do" method="post">
                                            <input type="text" name="petName" placeholder="根据宠物名字查询" style="border: 1px solid #E6E6E6;;height:28px;width:120px;">
                                            <button class="layui-btn layui-btn-sm"><i class="layui-icon">&#xa163;</i> 搜索</button>
                                        </form>
                                    </li>
                                     </ul>
                            </div>

最后创建一个展示搜索结果的jsp文件,并设置url,部分代码:


                                        <!-- 搜索  -->
                                        <div class="tools">
                                                <ul class="searchform">    
                                            <button class="layui-btn layui-btn-sm">&#xe615;</i> 搜索结果</button>
                                        </form></li>
                                                </ul>   
                                        </div>
                                    </div>
                                    <div class="row clearfix">
                                        <div class="col-md-12 column">
                                            <table class="table table-hover table-striped">
                                                <thead>
                                                <tr>
                                                    <th>id</th>
                                                    <th>宠物名称</th>
                                                    <th>宠物价格</th>
                                                    <th>宠物种类</th>
                                                    <th>宠物年龄</th>
                                                    <th>宠物性别</th>
                                                    <th>宠物颜色</th>
                                                    <th>宠物状态</th>
                                                </tr>
                                                </thead>
                                                <tbody>
                                                <c:forEach var="pet" items="${pageInfo_s.list}" >
                                                    <tr>
                                                        <td>${pet.petId}</td>
                                                        <td>${pet.petName}</td>
                                                        <td>${pet.salePrice}</td>
                                                        <td>${pet.petKind}</td>
                                                        <td>${pet.petAge}</td>
                                                        <td>${pet.petSex}</td>
                                                        <td>${pet.petColor}</td>
                                                        <td>${pet.petState}</td>
                                                        <td>
                                                            <a href="${pageContext.request.contextPath}/pet/toUpdate.do?id=${pet.petId}">更改</a> |
                                                            <a href="${pageContext.request.contextPath}/pet/delete.do?petId=${pet.petId}">删除</a>
                                                        </td>
                                                    </tr>
                                                </c:forEach>
                                                </tbody>
                                            </table>
                                        </div>
                                    </div>

                                    <!-- /.box-body 当前第一页 共10页-->
                                    <div class="box-tools pull-left">
                                         <div class="message">共<i class="blue">${pageInfo_s.total }</i>条记录,当前显示第&nbsp;
                                        <i class="blue">${pageInfo_s.pageNum }&nbsp;</i>页 总<i class="blue">${pageInfo_s.pages }</i>页
                                         </div>
                                    </div>
                                    <div class="box-tools pull-right">
                                        <ul class="pagination">
                                            <li><a href="${pageContext.request.contextPath}/pet/findPetByName.do?page=1&size=8" aria-label="Previous">首页</a></li>
                                            <li><a href="${pageContext.request.contextPath}/pet/findPetByName.do?page=${pageInfo.pageNum-1}&size=4">上一页</a></li>
                                            <c:forEach begin="1" end = "${pageInfo.pages}" var="pageNum">
                                                <li><a herf="${pageContext.request.contextPath}/pet/findPetByName.do?page=${pageNum}&size=8">${pageNum}</a></li>
                                            </c:forEach>
                                            <li><a href="${pageContext.request.contextPath}/pet/findPetByName.do?page=${pageInfo.pageNum+1}&size=8"> 下一页</a></li>
                                            <li><a href="${pageContext.request.contextPath}/pet/findPetByName.do?page=${pageInfo.pages}&size=8" aria-label="Next">尾页</a></li>
                                        </ul>
                                    </div>

                                </div>
                            </div>

到此时运行程序已经能实现对于数字和字母的模糊查询了,但是对于汉字的查询会报错,通过浏览博客上的纠错帖和亲自尝试,我试出了一个有效的方法:
打开tomcat安装位置,打开server.xml文件
在这里插入图片描述
进行编辑,在方框处添加代码:
在这里插入图片描述
完成之后保存,此时再运行不会立刻生效,需要重新配置一个tomcat server:配置方法参考文首博客一。
在这里插入图片描述
配置完成后,关闭之前的tomcat server,重新启动,保证生效。人生巅峰,迎娶白富美。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值