Mybatis分页
来源:互联网 发布:重庆seo服务 编辑:程序博客网 时间:2024/06/04 19:04
Mybatis分页
身为一个java程序员,我的前十几篇的blog居然都是关于js的,所以我决定聊聊java。最近在做毕业设计,由于我的
毕设导师他们的实验室一直是使用PostgreSQL的,那个和mysql一样也是免费的数据库,而且还自带管理端,用起来很方便
。但是我在实习工作的时候一直是使用mysql的,关于分页的事就麻烦了。
每个数据库关于sql的语法都有点不同。刚开始在网上找到 paginator项目
大家都很推荐这个,我觉得他应该是很不错的,但是在整合的时候,运行出现sql语法错误,说明他不适合PostgreSQL,但是可以修改源码解决。
但是我只是想找个解决办法,终于 Mybatis_PageHelper解决了问题。
Mybatis_PageHelper很好用,而且他的兼容性好,Oracle、Mysql、MariaDB、SQLite、Hsqldb、PostgreSQL、DB2、SqlServer(2005,2008)、Informix、H2、SqlServer2012。
这基本就包括了所有的数据库了。下面说说配置。
他的maven坐标:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.3</version></dependency>
他还使用了jsqlparser.jar这个jar包也要引进来。
重要的是配置一个Mybatis插件,在Mybatis的xml配置文件中,或者是通过spring的属性配置都可以,但是不要一起使用,
会发生错误。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations"> <array> <value>classpath:mapper/*.xml</value> </array> </property> <property name="typeAliasesPackage" value="com.isea533.ssm.model"/> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageHelper"> <property name="properties"> <value> dialect=hsqldb </value> </property> </bean> </array> </property></bean>
我没有细看到底配置是有什么用,但是记住修改dialect为你使用的数据库,官方说在也可以不指定,他会自动识别。
我觉得还是配置为好。
使用时有两种调用方法,我使用的第二种:
PageHelper.startPage(1, 10); List<Country> list = countryMapper.selectIf(1);
在你需要进行分页的Mybatis方法前调用PageHelper.startPage静态方法即可,紧跟在这个方法后的第一个Mybatis查询方法会被进行分页。但是我觉得已经足够使用了。
我的java代码是这么写的 service中:
public List<Task> findList(int pageNumber,int pageSize) { TaskExample example = new TaskExample(); PageHelper.startPage(pageNumber, pageSize); List<Task> tasks = taskMapper.selectByExample(example); return tasks; }
controller
public Map<String, Object> queryTaskList(int page, int rows) { List<Task> tasks = taskService.findList(page, rows); PageInfo<Task> taskPage = new PageInfo<Task>(tasks); Map<String, Object> result = new HashMap<String, Object>(); result.put("total", taskPage.getTotal()); result.put("rows", tasks); return result; }
分页中一般需要知道total,就可以使用PageInfo page = new PageInfo(list);
pageinfo可以获取他的一些分页信息,很是方便。
有什么问题可以和加qq1357197829我一起讨论,共同进步。也可以到我的个人博客http://github.lushunming.top/查看。
- MyBatis分页
- MyBatis分页
- mybatis分页
- MyBatis 分页
- Mybatis分页
- MyBatis分页
- MyBatis分页
- MyBatis分页 .
- mybatis分页
- mybatis--分页
- mybatis分页
- Mybatis 分页
- mybatis 分页
- mybatis分页
- Mybatis分页
- Mybatis分页
- MyBatis分页
- mybatis分页
- S5PV210中断处理的编程实践1~2
- 滑动条
- C语言字符串转换为oc
- 【剑指offer系列】 复杂链表的复制___26
- jdk1.6容器-LinkedList源码
- Mybatis分页
- 线程饥饿死锁
- Splash闪屏页的使用方法
- JSON转为字典
- apt-get install E: Encountered a section with no Package: header 解决办法
- Double-Lock Checking
- 基于NodeBB的网站服务器迁移步骤
- Class不是对象,用assign修饰
- Android ListView 下拉刷新