MyBatis拦截器实现分页功能实例

  

由于业务关系巴拉巴拉巴拉

  

好吧简单来说就是

  

原来的业务是需要再实现类里写selectCount和selectPage两个方法才能实现分页功能

  

现在想要达到效果是只通过一个方法就可以实现也就是功能合并所以就有了下面的实践

  

既然是基于MyBatis所以就先搭建一个MyBatis的小项目

  

<强> 1.01导入mybatis和mysql的包

  

 MyBatis拦截器实现分页功能实例

  

<强> 1.02。配置文件配置。xml中添加

        & lt;环境默认=胺⒄埂北?   & lt;环境id=胺⒄埂痹?   & lt; transactionManager类型=癑DBC/比;   & lt;数据源类型=盎慵北?   & lt;属性名="司机" value=" https://www.yisu.com/zixun/com.mysql.jdbc.Driver "/比;   & lt;属性名=" url " value=" https://www.yisu.com/zixun/jdbc: mysql://localhost: 3306/测试/比;   & lt;属性名="用户名" value=" https://www.yisu.com/zixun/root "/比;   & lt;属性名="密码" value="/比;   & lt;/dataSource>   & lt;/environment>   & lt;/environments>      

<强> 2.01。然后创建一个模块user 创建用户表

        删除表如果存在“用户”;   创建表“用户”(   “id”int(11)不是零AUTO_INCREMENT,   “名字”char(32)非空,   t1的char(32)默认为空,   t2的char(32)默认为空,   t3的char(32)默认为空,   主键(“id”)   )引擎=InnoDB AUTO_INCREMENT=10默认字符集=utf8;      

<强> 3.01。写对应bean: User.java

        包lqb.bean;      公开课用户扩展常见{      私人字符串id;   私人字符串名称;   私人字符串t1;   私人字符串t2;   私人字符串t3;//省略得到设置   }      之前      

<强> 3.02。对应的映射器:UserMapper.java和UserMapper.xml 

  

简单实现下CRUD

        公共接口usermap {   公共用户selectByID (int id);   公共Listselect ();   公共int插入u(用户);   公共int更新(用户u);   公共int删除用户(u);      }            & lt;映射器命名空间=發qb.mapper.UserMapper”比;   & lt;选择id=" selectByID " parameterType=癷nt”resultType=發qb.bean.User”比;   从“用户”,选择* id=# {id}   & lt;/select>   & lt;选择id="选择" resultType=" lqb.bean。用户“parameterType=" lqb.bean.User "比;   从“用户”选择*   & lt;/select>      & lt;插入id="插入" parameterType=發qb.bean.User”比;   插入用户(id、名称、t1、t2、t3)值(# {id}, # {name}, # {t1}, {t2} #, # {t3})   & lt;/insert>   & lt;更新id="更新" parameterType=發qb.bean.User”比;   更新用户组名称=#{名称},t1=# {t1}, t2=# {t2}, t3=# {t3}, id=# {id}   & lt;/update>   & lt;删除id="删除" parameterType=發qb.bean.User”比;   删除从用户id=# {id}   & lt;/delete>   & lt;/mapper>      

<强> 3.03。然后在配置文件Configuration.xml中添加用户的配置

        & lt; mappers>   & lt;资源映射器=" lqb/映射器/UserMapper.xml”/比;   & lt;/mappers>      

<强> 3.04。然后是实现:UserService.java

        公开课UserService {   私有静态SqlSessionFactory SqlSessionFactory;   私有静态读者读者;      静态{   尝试{   读者=Resources.getResourceAsReader (“Configuration.xml”);   sqlSessionFactory=new SqlSessionFactoryBuilder () .build(读者);   }捕捉(异常e) {   e.printStackTrace ();   }   }      公共静态SqlSessionFactory getSession () {   返回sqlSessionFactory;   }   }      之前      

<强> 4.01好然后是重点了

  

思路:截获查询的sql然后拼成sqlPage和sqlCount再进行查找取值然后赋传入对象

  

所以我们就需要创建一个基础类来让user.java来继承

        公共类常见{   私人int页大小;   私人int pageid;   私人int pagebegin;   私人int数;//省略得到设置   }      

<强> 4.02然后让用户继承常见

        公开课用户扩展常见{      

MyBatis拦截器实现分页功能实例