精华内容
下载资源
问答
  • Maven实现分页效果

    2019-07-02 18:46:56
    在pom.xml文件中标签下添加如下代码 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version&g...

    完成效果在这里插入图片描述

    1 导jar包

    在pom.xml文件中标签下添加如下代码

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.2</version>
    </dependency>
    

    按住Ctrl鼠标点击包名可以查看对应代码即导入成功在这里插入图片描述

    2 修改配置加载映射文件

    修改UserMapper.xml,添加如下代码

            <property name="mapperLocations" value="classpath:mapper/*.xml"/>
            <property name="plugins">
                <array>
                    <bean class="com.github.pagehelper.PageInterceptor">
                        <property name="properties">
                            <props>
                                <prop key="helperDialect">mysql</prop>
                                <prop key="reasonable">true</prop>
                            </props>
                        </property>
                    </bean>
                </array>
            </property>
    

    3 修改页面请求路径

    <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
    

    请求路径中加上page 和 size
    page:当前页码
    size:每页的记录条数

    4 修改service中的方法

    执行具体代码前PageHelper.startPage(page,size)

    @Override
    public List<UserInfo> findAll(int page,int size) {
        PageHelper.startPage(page,size);
        return userDao.findAll();
    }
    

    5 Controller得到的userinfos对象装到pageinfo对象里

    @RequestMapping("/findAll.do")
    public ModelAndView findAll(@RequestParam(defaultValue = "1")int page,@RequestParam(defaultValue = "5")int size) {
        List<UserInfo> infos = userService.findAll( page,size);
        PageInfo pageInfo = new PageInfo(infos);
        ModelAndView mv = new ModelAndView();
        //调用保存数据函数
        mv.addObject("pageInfo",pageInfo);
        mv.setViewName("user-list");
        return mv;
    }
    

    6 JSP代码

    <div class="box-tools pull-right">
           <ul class="pagination">
            <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
            <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfo.pageNum-1}&size=5">上一页</a></li>
            <c:forEach begin="1" end="${pageInfo.pages}" var="pageNum">
             <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageNum}&size=5">${pageNum}</a></li>
            </c:forEach>
            <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfo.pageNum+1}&size=5">下一页</a></li>
            <li><a href="${pageContext.request.contextPath}/user/findAll.do?page=${pageInfo.pages}&size=5" aria-label="Next">尾页</a></li>
           </ul>
          </div>
    

    只是每次换页都需要重新链接数据库读取数据,这一点是很不实用的,在实际的应用中大概会有所优化。

    展开全文
  • mybatis分页(基于springboot+maven) 一、引入mybatis依赖和分页插件的依赖 <!-- SpringBoot集成mybatis框架 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> ...

    mybatis分页(基于springboot+maven)

    一、引入mybatis依赖和分页插件的依赖

           <!-- SpringBoot集成mybatis框架 -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            
           <!--mybaits分页插件-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.5</version>
            </dependency>
    

    二、需要一段查询sql

    <select id="queryRecordByPage" resultMap="RegisterMap">
            select
            <include refid="userColumns"></include>
            from t_vistor_register where is_delete='0'
            order by gmt_create desc
    </select>
    
    

    三、需要mapper接口映射xml文件

    public interface RegisterMapper{
            /*方法名称与xml中的id相同**/
            List<RegisterInfo> queryRecordByPage();
    }
    
    

    四、 service层的接口和实现类

    @Service
    public interface VisitorService {
    	   
    	    /**
    	     * 分页查询
    	     * @param page 页号
    	     * @param limit 每页显示记录数
    	     * @return
    	     */
    	    List< RegisterInfo> findByPage();
    }
    

    下面是实现类:

    @Service
    public class VisitorServiceImpl implements VisitorService{
    
       	@Override
        public List< RegisterInfo> findByPage(){
            List< RegisterInfo> list = visitorRegisterMapper.queryRecordByPage();
            return list;
         }
    }
    

    四、controller

    @Controller
    public class pageController{
        //pageIndex是要查询的页标识,即页码,页号
    	@RequestMapping(value = "/register/list/{pageIndex}",method = RequestMethod.GET)
    	    public String findByPage(@PathVariable Integer pageIndex,Model model){
    	       //查询第几页,每页几条记录
    	       //以下两行代码需紧跟,中间不能有其他查询的代码
    	        Page page = PageHelper.startPage(pageIndex, 10);
    	        List<RegisterInfo> list  = visitorService.findByPage(pageIndex,10);
    	        //设置返回的总记录
    	        //这里需要说明以下,如果是new PageInfo<list>则pageInfo.getTotal返回10
    	        //条记录,及list的记录数,如果是new PageInfo<Page> 则
    	        //pageInfo.getTotal()返回的是符合该查询的所有的记录数,实际情况下我们
    	        //需要的是这种,故推荐用new PageInfo<Page>
    	        PageInfo<RegisterInfo> pageInfo=new PageInfo<>(list);
    	        model.addAttribute("pageInfo",pageInfo);
    	        return "pages_register_list";
    	    }
    }
    

    PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的。

    只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查询方法,这就是安全的。因为 PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象。

    如果代码在进入 Executor 前发生异常,就会导致线程不可用,这属于人为的 Bug(例如接口方法和 XML 中的不匹配,导致找不到 MappedStatement 时), 这种情况由于线程不可用,也不会导致 ThreadLocal 参数被错误的使用。

    但是如果你写出下面这样的代码,就是不安全的用法:

    PageHelper.startPage(1, 10);
    List<Country> list;
    if(param1 != null){
        list = countryMapper.selectIf(param1);
    } else {
        list = new ArrayList<Country>();
    }
    

    这种情况下由于 param1 存在 null 的情况,就会导致 PageHelper 生产了一个分页参数,但是没有被消费,这个参数就会一直保留在这个线程上。当这个线程再次被使用时,就可能导致不该分页的方法去消费这个分页参数,这就产生了莫名其妙的分页。

    上面这个代码,应该写成下面这个样子:

    List<Country> list;
    if(param1 != null){
        PageHelper.startPage(1, 10);
        list = countryMapper.selectIf(param1);
    } else {
        list = new ArrayList<Country>();
    }
    

    五、Html页面,我使用的thymeleaf模板

    具体的表格里面的内容我就不贴了,下面是分页条的内容,点击可实现分页

    <!--显示分页信息-->
    <div class="row">
        <!--文字信息-->
        <div class="col-md-6">
            当前第<span th:text="${pageInfo.pageNum}"></span>页 总共 <span th:text="${pageInfo.pages}"></span>页 共<span th:text="${pageInfo.total}"></span>条记录
        </div>
    
        <!--点击分页-->
        <div class="col-md-6">
            <nav aria-label="Page navigation">
                <ul class="pagination">
                    <li>
                        <a th:href="@{/visitor/register/list/1}">首页</a>
                    </li>
                    <!--上一页-->
                    <li th:if="${pageInfo.hasPreviousPage}">
                            <a th:href="@{/visitor/register/list/{page}(page=${pageInfo.pageNum-1})}" aria-label="Previous">
                                <span aria-hidden="true">«</span>
                            </a>
                    </li>
                    <!--循环遍历连续显示的页面,若是当前页就高亮显示,并且没有链接-->
                    <li th:each="list:${pageInfo.navigatepageNums}"
                        th:classappend="${pageInfo.pageNum} eq ${list}?'active'">
                        <a th:href="@{/visitor/register/list/{page}(page=${list})}" th:text="${list}"></a>
                    </li>
                    <!--下一页-->
                    <li th:if="${pageInfo.hasNextPage}">
                        <a th:href="@{/visitor/register/list/{page}(page=${pageInfo.pageNum+1})}" aria-label="Next">
                            <span aria-hidden="true">»</span>
                        </a>
                    </li>
                    <li>
                        <a th:href="@{/visitor/register/list/{page}(page=${pageInfo.pages})}">尾页</a>
                    </li>
                </ul>
            </nav>
        </div>
    
    </div><!--分页end-->
    

    以下是相关图片

    在这里插入图片描述
    下面是打印的pageInfo的信息
    在这里插入图片描述
    网上的教程比较杂,这个是自己亲测并在使用,那些要写自己写page类的是因为引入的依赖不一样

    展开全文
  • 项目由maven+ssm+pagehelper分页查询组成,数据库根据截图可以自由设置。
  • 逆向工程使用配置文档(亲自制作),逆向工程和分页的完整项目代码,直接可以拷贝使用,适合开始学习maven的同学
  • maven项目中的使用分页插件PageHelper 1.Maven项目中使用PageHelper分页插件   需要引入maven中的依赖,下载地址为http://mvnrepository.com,在搜索框中输入PageHelper,按照需要拷贝进需要版本的依赖   例如...

    maven项目中的使用分页插件PageHelper

    1.Maven项目中使用PageHelper分页插件

     

    需要引入maven中的依赖,下载地址为http://mvnrepository.com,在搜索框中输入PageHelper,按照需要拷贝进需要版本的依赖

     

    例如:

     

    <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.2</version>
    </dependency>

     

    1. 拷贝好之后将上述代码黏贴到maven项目中的pox.xml,让其自动下载对应版本的jar包

     

    2.拷贝好之后将上述代码黏贴到maven项目中的pox.xml,让其自动下载对应版本的jar包

    3.在maven项目中的mybatis全局配置文件中注册这个插件,在百度中搜索PageHelper:

     https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md 进入找到:

     

           然后在mybatis全局配置文件的plugins标签中的interceptor拷贝进去即可

    <plugins>
        <!-- com.github.pagehelper为PageHelper类所在包名 -->
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
            <property name="param1" value="value1"/>
            
        </plugin>
    </plugins>

    注意的是plugins标签要放在typeAliases后面否则会报错

     

    4.在ssm简单的小应用中:

    使用控制器处理jsp页面的请求,把查询的结果交给分页插件,其中部分相关的代码如下:

    @Controller

    public class EmployeeController {

    @Autowired

    EmployeeService employeeServise;

     

            @RequestMapping("/emps")

    public String getEmps(@RequestParam(value = "pn",defaultValue = "1")Integer pn,

     

    Model model){

     

                            PageHelper.startPage(pn, 5);   //设置传入页码,以及每页的大小

     

                            List <Employee> emps = employeeServise.getAll();

     

                           PageInfo info = new PageInfo(emps,5);  

     

                          //使用pageInfo来包装查询后的结果,只需要将pageInfo交给页面就行了

     

           model.addAttribute("pageinfo",info); //把封装好的pageinfo属性设置到model模型中

    return "list";

    }

    }

     

    展开全文
  • maven项目中的使用分页插件PageHelper

    万次阅读 2018-07-06 22:49:00
    1.Maven项目中使用PageHelper分页插件需要引入maven中的依赖,下载地址为http://mvnrepository.com,在搜索框中输入PageHelper,按照需要拷贝进需要版本的依赖例如:&lt;!-- ...

    1. Maven项目中使用PageHelper分页插件

    需要引入maven中的依赖,下载地址为http://mvnrepository.com,在搜索框中输入PageHelper,按照需要拷贝进需要版本的依赖

    例如:

    <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>4.2.0</version>

    </dependency>

    2. 拷贝好之后将上述代码黏贴到maven项目中的pox.xml,让其自动下载对应版本的jar包

    3. 在maven项目中的mybatis全局配置文件中注册这个插件,在百度中搜索PageHelper:

     https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md 进入找到:

           然后在mybatis全局配置文件的plugins标签中的interceptor拷贝进去即可

    注意的是plugins标签要放在typeAliases后面否则会报错

    4. 在我的ssm简单的小应用中:

    使用控制器处理jsp页面的请求,把查询的结果交给分页插件,其中部分相关的代码如下:

    @Controller
    public class EmployeeController {
    @Autowired
    EmployeeService employeeServise;

            @RequestMapping("/emps")
    public String getEmps(@RequestParam(value = "pn",defaultValue = "1")Integer pn,

    Model model){

     

                            PageHelper.startPage(pn, 5);   //设置传入页码,以及每页的大小

                            List <Employee> emps = employeeServise.getAll();

                           PageInfo info = new PageInfo(emps,5);  

                          //使用pageInfo来包装查询后的结果,只需要将pageInfo交给页面就行了

           model.addAttribute("pageinfo",info); //把封装好的pageinfo属性设置到model模型中
    return "list";
    }
    }

     

     

    展开全文
  • 第一步:pom.xml中添加分页<!-- pageHelper启动器 --> 和pageHelper依赖 <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --> <dependency> ....
  • 利用Struts2+Hibernate+maven进行分页查询项目介绍环境配置文件结构文件说明资源下载参考博客源代码Companyinfo实体类pageBean分页信息实体类CompanyinfoDao操作层Hibernate的工厂类HibernateSessionFactoryStruts2 ...
  • Maven+Mybatis+Spring+SpringMVC实现分页查询(附源代码) 以下小宝鸽将分享一篇Mybatis分页功能的博文,以下将给出具体的步骤。跟着博主的节奏肯定能实现。另外最后还会附上整个project的源代码。...
  • Java代码部分: /* * ResponseBody用于将Controller的方法返回的对象,通过适当的 HttpMessageConverter转换* 为指定格式后,写入到Response对象的 body数据区 //主要用于json返回 */ @ResponseBody //produces指定...
  • maven-mybatis分页插件配置

    千次阅读 2016-04-21 14:49:01
    1.pom.xml ...3.代码 PageBounds pageBounds = new PageBounds(page, pageSize); Map map=new HashMap(); map.put("username", "%"); List list=session.selectList("com.zap.demo2.map
  • 这里面的测试项目用的是idea写的maven项目,所以基本的架包配置都在pom.xml中。并且底层用的是mybatis自动生成的mapper文件来查询数据库,如果各位同胞用的是eclipse开发或者基于约定来写的查询方法的话,也可以稍稍...
  • 在添加分页之前,首先先添加maven依赖。如果不是maven项目,直接导入jar到lib也是一样的。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc
  • MyBatis插件扩展_PaginationInterceptor分页插件的使用示例代码
  • 1.本地安装maven,配置好环境变量 2.在项目下的jdbc文件中引用相关mapper插件:(拷贝以下代码,修改相关路径) jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode\=true&...
  • 由于本人最近在学的MyBatis的的的框架,期间偶然看见一个叫逆向工程可以自动生成代码的东西,所以就入坑了。所以现在就把我的整个流程贡献出来。因为之前是看了很多资料,但是很多都可能报错,所有我现在整合起来...
  • -----分页------
  • mybatis-plus代码生成maven插件

    千次阅读 2019-11-14 17:56:20
    为了在项目中快捷方便的代码生成,将mybatis-plus-generator封装为了一个maven的插件mybatis-plus-generator-maven-plugin,在要使用的项目pom文件引入该插件,执行mvn命令,即可直接生成代码到项目中,生成基于...
  • 开发工具:IntelliJ IDEA,Maven 实现效果: 会员信息 如何使用Bootstrap+Vue来实现动态table,数据的新增删除等操作,请查看使用Bootstrap + Vue.js实现表格的动态展示、新增和删除 。交代完毕,本文主题开始。 ...
  • 组件自动注入失败 这里可能就是大家编写代码的时候粗心所致了,可能是Controller层中调用Service组件没有标注@Autowired注解,也有可能是Service层中调用Dao层的组件没有标上注解导致调用方法时报出空指针异常(我...
  • maven中主要依赖 分页助手(com.github.pagehelper) 一、pom.xml中引用 pagehelper 依赖 <!-- mybatis的分页助手 --> <dependency> <groupId>com.github.pagehelper</groupId> <...
  • SSM+maven+bootstrap实现分页

    千次阅读 2017-06-22 17:42:23
    SSM+maven+bootstrap实现分页分页是Java WEB项目常用的功能,由于刚学习Java这门语言,做起来有些费劲,在此记录一下,既能帮助我自己,也能帮助像我一样刚入门的程序猿。 使用的框架(MyBatis+SpringMVC+Spring)...
  • java maven mysql分页查询

    千次阅读 2016-11-18 16:34:20
    对与我们的需求来说,有时候查询的数据比较的多,这时就要用到分页查询来实现我们的目的,分页查询这种机制对于程序来说还是很重要的。接下来就是分页查询的具体实现方法,用的是PageHelper的框架!感觉挺好的,也很...
  • SpringBoot+mybatis+Oracle+MAVEN整合代码

    万次阅读 2017-09-05 11:51:51
    架构采用springBoot 集成 mybatis 使用oracle数据库 maven 管理的WEB 接口项目 springBoot v1.5.2.RELEASE 经过N次调整,解决各种问题 。 支持JSP访问 支持打JAR包访问WEB资源 , 在pom.xml目录下运行: mvn ...
  • 二、分页插件的介绍 博主采用的插件是PageHelper这个插件,使用起来十分方便。该插件支持以下数据库: 1 2 3 Oracle Mysql MariaDB SQLite Hsqldb PostgreSQL DB2
  • 一、集成步骤 1、添加PageHelper插件依赖 2、注册分页对象PageHelper到Spring容器中 3、创建分页实体类 ...一行代码,既可自动实现分页功能。重点注意该行代码必须在业务SQL语句代码上一行。  二、实现...
  • 注意:helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值: oracle,mysql,mariadb,sqlite,...
  • mybatis生成工具为maven项目
  • 从上图中不难看出,我们制定跳转到某页的功能是基于linkpager之上的扩展,这根我们之前实现的分页扩展明显不同,之前的明显就是重写了!当然,这都不重要,我们看看GoLinkPager的具体实现!名字起的有点lower,不重要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,106
精华内容 8,042
关键字:

maven分页代码