MyBatis的分页操作(MySQL)
1.无条件分页:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace写成类的全限定名有好处,在Dao中方便-->
<mapper namespace="com.winner.entity.Student"> <!--type是类的全限定名,因为mybatis.xml中有别名的设置,所以用别名,短,方便-->
<resultMap id="studentMap" type="Student">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="sal" column="sal"/>
</resultMap> <!--这里做一个约定,返回值类型以后都写resultMap的id-->
<!--SQL语句这样写易读性更好-->
<select id="findAllWithPage" parameterType="map" resultMap="studentMap">
SELECT id,name,sal
FROM student
LIMIT #{pstart},#{psize}
</select>
</mapper>
public class StudentDao {
/**
* 无条件分页
* @param start 表示在mysql中从第几条记录的索引号开始显示,索引从0开始
* @param size 表示在mysql中最多显示几条记录
*/
public List<Student> findAllWithPage(int start,int size) throws Exception{
SqlSession sqlSession = null;
try{
sqlSession = MybatisUtil.getSqlSession();
Map<String,Object> map = new LinkedHashMap<String,Object>();
map.put("pstart",start);
map.put("psize",size);
return sqlSession.selectList(Student.class.getName() + ".findAllWithPage", map);
}catch(Exception ex){
ex.printStackTrace();
throw ex;
}finally{
MybatisUtil.closeSqlSession();
}
}
public static void main(String[] args) throws Exception{
StudentDao dao = new StudentDao();
System.out.println("--------------------第一页");
List<Student> studentList1 = dao.findAllWithPage(0,3);
for(Student s : studentList1){
System.out.println(s.getId() + " : " + s.getName() + " : " + s.getSal());
}
System.out.println("--------------------第二页");
List<Student> studentList2 = dao.findAllWithPage(3,3);
for(Student s : studentList2){
System.out.println(s.getId() + " : " + s.getName() + " : " + s.getSal());
}
System.out.println("--------------------第三页");
List<Student> studentList3 = dao.findAllWithPage(6,3);
for(Student s : studentList3){
System.out.println(s.getId() + " : " + s.getName() + " : " + s.getSal());
}
System.out.println("--------------------第四页");
List<Student> studentList4 = dao.findAllWithPage(9,3);
for(Student s : studentList4){
System.out.println(s.getId() + " : " + s.getName() + " : " + s.getSal());
}
}
}
2.带条件的分页
<select id="findAllByNameWithPage" parameterType="map" resultMap="studentMap">
SELECT id,name,sal
FROM student
WHERE name LIKE #{pname}
limit #{pstart},#{psize}
</select>
/**
* 有条件分页
*/
public List<Student> findAllByNameWithPage(String name,int start,int size) throws Exception{
SqlSession sqlSession = null;
try{
sqlSession = MybatisUtil.getSqlSession();
Map<String,Object> map = new LinkedHashMap<String, Object>();
map.put("pname","%"+name+"%");
map.put("pstart",start);
map.put("psize",size);
return sqlSession.selectList(Student.class.getName()+".findAllByNameWithPage",map);
}catch(Exception ex){
ex.printStackTrace();
throw ex;
}finally{
MybatisUtil.closeSqlSession();
}
}
MyBatis的分页操作(MySQL)的更多相关文章
- MyBatis SQL语句操作Mysql
本文记录使用Mybatis操作数据库时碰到的一些语句,供以后参考. 一,多条件查询 示意SQL语句:SELECT t_field1, t_field2 FROM table_name WHERE t_ ...
- SpringBoot整合mybatis使用pageHelper插件进行分页操作
SpringBoot整合mybatis分页操作 SpringBoot整合Mybatis进行分页操作,这里需要使用Mybatis的分页插件:pageHelper, 关于pageHelper的介绍,请查看 ...
- Spring Boot 项目学习 (二) MySql + MyBatis 注解 + 分页控件 配置
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 ...
- Spring Boot(六)集成 MyBatis 操作 MySQL 8
一.简介 1.1 MyBatis介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集. ...
- MySQL中的分页操作结合python
mysql中的分页操作结合python --分页: --方式1: ;-- 读取十行 , --从第十行读取 往后再读十行 --方式2: offset ; --从第二十行开始读取10行 -- 结合pyth ...
- Mybatis的分页插件PageHelper
Mybatis的分页插件PageHelper 项目地址:http://git.oschina.net/free/Mybatis_PageHelper 文档地址:http://git.oschina. ...
- 权限管理系统之项目框架搭建并集成日志、mybatis和分页
前一篇博客中使用LayUI实现了列表页面和编辑页面的显示交互,但列表页面table渲染的数据是固定数据,本篇博客主要是将固定数据变成数据库数据. 一.项目框架 首先要解决的是项目框架问题,搭建什么样的 ...
- 【MyBatis】MyBatis实现CRUD操作
1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...
- MyBatis 实现分页功能
MySQL 的分页功能是基于内存的分页(即查出来所有记录,再按起始位置和页面容量取出结果). 案例:①根据用户名(支持模糊查询).用户角色 id 查询用户列表(即根据用户名称或根据用户角色 id 又或 ...
随机推荐
- 笔试面试题-小米Git
题目描述: git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常 ...
- linux下进入root
baoyu@ubuntu:~$ sudo password root sudo: password: command not found baoyu@ubuntu:~$ sudo passwd roo ...
- 随机森林之Bagging法
摘要:在随机森林介绍中提到了Bagging方法,这里就具体的学习下bagging方法. Bagging方法是一个统计重采样的技术,它的基础是Bootstrap.基本思想是:利用Bootstrap方法重 ...
- 屏蔽ubuntu桌面鼠标右键以及Ctrl Alt F*
1.屏蔽右键: xmodmap -e "pointer = 1 2 99"xmodmap -e 'pointer = 1 2 0 4 5 6 7 8 9' #xmodmap -e ...
- Memcached的安装(Linux)、操作、命令
最近在整理有关分布式缓存的服务器,做了一下老牌nosql服务器memcached的学习总结.文中所述的所有安装均是在联网的情况下进行的. 序: 什么是memcached: Free & ope ...
- 编译php5.6
没想到编译个LAMP这么麻烦又简单. 按照官网的做就可以了,只是我在CentOs下一直会提示出现这个错误 按照官网的安装方法:install 用下面的参数: ./configure --with-ap ...
- 微信公众号-开发者-自定义菜单-CLICK事件处理
想点击菜单,推送消息.功能很简单,坑了我一天时间.在此笔记. 菜单代码: { "button":[ { "type":"click", &q ...
- IE下的bug解决方案
1.IE6下的双边距bug <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Facebook SDK
<?php session_start(); header('Content-type:text/html; charset=UTF-8'); require_once './facebook- ...
- html5实现渐变效果
<canvas id='test01'></canvas> <script> function draw25(id) { var canvas = document ...