Mybatis Example对Oracle数据库的分页查询
2018-03-27 16:40
155 查看
问题:
在使用mybatis过程中通过mybatis-generator逆向生成实体(包含example)和mapper(包含xml文件)。 对于example的理解,可以认为是一个高级查询的过程,但从执行代码的表面角度看,有点像Hibernate。 如何使用mybatis的example来实现一个有条件筛选的分页?思路:
先在navicat中写出一个简单的能够实现筛选(条件)和分页的sql语句 mysql中实现比较简单select * from tableA where A.a>10 limit startRow ,pageSize 在Oracle中语句就相对比较复杂SELECT*FROM( SELECT t.*, row_number () over ( ORDER BY GUID ) AS num FROM tableA t WHERE MJ >= 10 ) ttWHEREnum BETWEEN 5AND 6 简单解释一下这个语句,先从from()开始理解: 首先查询条件筛选过的A.*(全部字段)和row_number() 然后再从其中查询序列号在5到6的结果(ps:也是一个条件查询)解决:
1在mapper.java中声明方法List<WfjzTsjb> selectByPage(@Param("start") int start,@Param("end") int end,@Param("example") AExample example); 2在对应的mapper.xml中写对应的sql语句 <select id="selectByPage" parameterType="com.pojo.A" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from ( SELECT t.*, row_number () over ( ORDER BY GUID ) as num FROM Database.A t <if test="param3 != null"> <include refid="Update_By_Example_Where_Clause" /> </if> ) tt where num between #{start} and #{end} </select> ps:关键是<if test="param3!=null">,因为这个是参照默认的selectByExample写的,_parameter是接口方法中只有一个参数的写法 3编写测试方法,测试结果public class SimpleTest{ static ListServiceImpl serviceImpl = new ListServi4000ceImpl(); public static void main(String[] args) throws IOException {// TODO Auto-generated method stubString resource = "mybatis.xml"; // 定位核心配置文件InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创建 SqlSessionFactorySqlSession sqlSession = sqlSessionFactory.openSession(); // 获取到 SqlSessionAMapper aMapper = sqlSession.getMapper(AMapper.class);AExample example = new AExample();Criteria criteria = example.createCriteria();BigDecimal dec = new BigDecimal(10.0);criteria.andMjGreaterThanOrEqualTo(dec);List<A> list = aMapper.selectByPage(5, 10, example);//serviceImpl.getList().size());for(A a : list)System.out.println("当前:" + a.getMj());}}测试结果如图,验证成功相关文章推荐
- oracle数据库下的分页查询
- Oracle数据库查询高效分页
- Oracle数据库查询高效分页
- Hibernate分页查询oracle数据库显示结果集与实际查询不匹配
- Oracle数据库高级查询(二)分页查询
- Oracle数据库查询高效分页
- Oracle数据库查询高效分页精简
- Oracle数据库查询高效分页
- oracle数据库的分页查询语句
- Oracle数据库中分页查询中排序及效率问题
- oracle数据库查询结果分页处理(Java +Jsp +Tag)
- Oracle数据库查询高效分页
- Oracle数据库查询高效分页
- 关于java的分页查询操作解析(本题只针对oracle数据库的分页查询)
- Oracle数据库分页查询
- 基于Oracle数据库,用SSM框架和easyUI实现分页查询操作
- oracle数据库分页查询(带排序)
- Oracle数据库查询高效分页
- Oracle数据库查询分页SQL语句
- Mysql和Oracle数据库中的分页查询