MaBatis中的分页插件以及特殊字符处理

目录

一、PageHelper介绍

二、PageHelper使用

1. 导入pom依赖

2. Mybatis.cfg.xml 配置拦截器

 配置sql映射文件

测试代码

特殊字符处理

2. 使用CDATA 区段

 


一、PageHelper介绍

        PageHelper 是 Mybatis 的一个插件,这里就不扯了,就是为了更加便捷的进行分页查询。

官方网址:MyBatis 分页插件 PageHelper

PageHelper插件的优点:

  1. 物理分页:支持常见的 12 种数据库Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等...
  2. 支持多种分页方式:支持常见的RowBounds(PageRowBounds),PageHelper.startPage 方法调用,Mapper 接口参数调用。
  3. QueryInterceptor 规范:使用 QueryInterceptor 规范,开发插件更轻松。

二、PageHelper使用


1. 导入pom依赖

  
            com.github.pagehelper
            pagehelper
            5.2.0
        


2. Mybatis.cfg.xml 配置拦截器

    
        
    

注意:必须配置在MyBatis.xml文件中的environments之上,这是框架规定的dtd约束,否则报错

MaBatis中的分页插件以及特殊字符处理_第1张图片

 3.配置sql映射文件

我这里使用的返回结果类型和参数类型都是map类型,没必要和我一样,可以自己修改

    

后面的生成接口我就省略了,与上一篇mybatis动态sql是差不多的

4.测试代码

import com.github.pagehelper.PageHelper;
import com.wenhao.oa.impl.DeptImpl;
import com.wenhao.oa.mapper.DeptMapper;
import com.wenhao.oa.model.Dept;
import com.wenhao.oa.model.PageBean;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

/**
 * @ 用户  liwen
 * @当前日期 2023/8/23
 * @当前项目名称 ssm
 */
public class test {

    public static void main(String[] args) throws IOException {

        InputStream r = Resources.getResourceAsStream("mybatis.cfg.xml");
//        获取sqlsession对象
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(r);
//
        SqlSession sqlSession = build.openSession(true);
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);

        DeptImpl d= new DeptImpl();
        d.setDeptMapper(mapper);
//
//        List query = d.query("财务部");
//        System.out.println(query);

//        int wenhao = d.insert(new Dept(7, "wenhao"));
//        System.out.println(wenhao);

        PageBean p= new PageBean();
        p.setPagination(true);
        p.setPage(2);
        p.setRows(2);
        PageHelper.startPage(p.getPage(),p.getRows());

        Map map= new HashMap();
        map.put("name","部");

        System.out.println(d.query1(map));


    }


}

测试结果: 

MaBatis中的分页插件以及特殊字符处理_第2张图片

三、特殊字符处理


        在mybatis中我们经常用到特殊字符动态拼接语句,如经常使用到 大于(>,>=)、小于(<,<=)、不等于(<> ,!=)符号。Mybatis使用的 *.xml文件格式,需要在尖括号进行相关的转义或者使用 CDATA 区段。

1. 使用转义字符


特殊字符    转义字符

<     <
   >
&    &
"
’    '
<=   <=
>=  >=


示例:

    

2. 使用CDATA 区段


是xml语法,在内部的所有内容都会被解析器忽略,不进行转义。所以在xml中这是一种通用方案。


 示例:

   


 

你可能感兴趣的:(MyBatis,java,开发语言)