mybatis中的Oracle分页查询出错解决

    Mybatis中配置mapper文件中的数据库查询语句的时候,是没有问题的,但是当配置Oracle的分页查询时,xml文件一直报错,然后各种百度各种查资料,最后受一篇文章的启发,才用了特殊符号替代符号,就把问题解决了。

      但是,不是分页查询时,大于号甚至是>=号都是可以正常使用的,但是在分页查询行不通。至于原理,不是很清楚为啥,毕竟没有系统学过servlet,请各位大神指教。

   错误截图

那句话的翻译:元素的内容必须由格式良好的字符数据或标记组成。

mybatis中的Oracle分页查询出错解决_第1张图片

下面上正确代码
   mapper配置文件



  

	

servlet代码

package cn.hjz.servlet;

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

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.apache.log4j.Logger;

import cn.hjz.pojo.Person;

public class DemoServlet2 {
	public static void main(String[] args) throws IOException {
		InputStream is = Resources.getResourceAsStream("mybatis.xml");
        /**前面是工厂设计模式
		 * 实例化工厂对象使用的是 构建者设计模式,名称标志:后面后Builder
		 * 构建者设计模式的意义:简化对象实例化过程
		 */
		SqlSessionFactory factory =  new SqlSessionFactoryBuilder().build(is);
		SqlSession session = factory.openSession();
		
		
		//测试版
		int m = 3;
		int n = 2;
		Map map1 = new HashMap<>();
		map1.put("pageLast", 2);
		log.info(map1);
		//map1.put("pageStar", (n-1)*m);
		
		List list1 = session.selectList("cn.hjz.mapper.PersonMapper.page", map1);
		log.info(list1);
		
		session.close();
	}
}

正确的输出结果

 

       解决方法挺简单的,只要把>=号或者<=号等特殊符号替代掉,就不会报错了,至于为啥跟分页过不去,小弟就不知道了,请大神指点一二(手动滑稽脸)。

 

你可能感兴趣的:(mybatis中的Oracle分页查询出错解决)