SSM整合分页插件+模糊查询

本文详细介绍了如何在SSM框架中利用MyBatis分页插件PageHelper实现模糊查询与分页显示功能。从引入依赖、配置插件、编写Mapper接口到Controller实现,提供了完整的步骤与代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ssm使用mybatis分页插件实现模糊查询和显示

1、步骤一引入依赖
	   <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.0.0</version>
        </dependency>
2、xml中配置插件

官方文档有两种配置分页拦截器插件
注:两种方式只能选择一个,不然会报找不到bean 等异常,我一般选择第二种

2.1、在 MyBatis 配置 xml 中配置拦截器插件
<plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
        <property name="param1" value="value1"/>
	</plugin>
</plugins>
2.2、在 spring配置文件中配置拦截器插件
 <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="factoryBean" >
       <property name="plugins">
           <array>
               <bean class="com.github.pagehelper.PageInterceptor">
                   <property name="properties">
                       <value>
                           helperDialect=mysql
                           reasonable=true
                       </value>
                   </property>
               </bean>
           </array>
       </property>
  </bean>
3、mapper接口
List<User> findByName(@Param("username")String username);
4、xml中sql语句
  <select id="findByName" parameterType="com.xbj.po.User" resultType="com.xbj.po.User">
    select
    <include refid="Base_Column_List" />
     from users
    <where>
      <if test="_parameter != null ">
        and username LIKE '%' #{username} '%'
      </if>
    </where>
  </select>
5、service接口和实现类
//service接口
List<User> findByName(@Param("username")String username);


//service实现类
	 /*
     *   模糊查询
     * */
    public List<User> findByName(@Param("username")String username) {
        List<User> userList=userMapper.findByName(username);
        return userList;
    }
6、controller实现
  @RequestMapping(value = "/show")
    public String toIndex(@RequestParam(required = true,defaultValue="1")Integer page,Model model,
                          @RequestParam(value = "username",defaultValue="")String username,
                          HttpServletRequest request){
        PageHelper.startPage(page,10);
        List<User> userList=userService.findByName(username);
        PageInfo<User> pageInfo=new PageInfo<User>(userList);
        model.addAttribute("page",pageInfo);
        model.addAttribute("userList",userList);
        return "user/index";
    }
7、jsp页面渲染
		<form action="${pageContext.request.contextPath}/user/show"  method="post">
          查询关键字:<input type="text" name="username"  placeholder="请输入用户名" />
          <input type="submit"></input>
        </form>
         <c:forEach items="${userList}" var="user">
              <tr>
                <td>${user.id}</td>
                <td>${user.username}</td>
                <td>${user.password}</td>
                <td>${user.sex}</td>
              </tr>
         </c:forEach>
         <!-- 分页信息 -->
   <div class="col-md-6">
 		 <p>每页${page.pageSize}条  当前页${page.size}条 ${page.pageNum}/${page.pages}页 
 		 记录数${page.total}</p>

          <c:if test="${page.isFirstPage==true}"><a>首页</a> </c:if>
          <c:if test="${page.isFirstPage==false}">
                <a href="/user/show?page=${page.firstPage}">首页</a>
          </c:if>                   
          <c:if test="${page.hasPreviousPage==true}">
                <a href="/user/show?page=${page.prePage}">上一页</a>
          </c:if> 
          <c:if test="${page.hasPreviousPage==false}"><a >上一页</a> </c:if> 
          <c:if test="${page.hasNextPage==true}">
                 <a href="/user/show?page=${page.nextPage}">下一页</a>
          </c:if> 
          <c:if test="${page.hasNextPage==false}"><a >下一页</a> </c:if>  

          <c:if test="${page.isLastPage==true}"><a >末页</a> </c:if>   
          <c:if test="${page.isLastPage==false}">
                <a href="/user/show?page=${page.lastPage}">末页</a>
          </c:if> 
                      
     </div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值