zoukankan      html  css  js  c++  java
  • mybatis分页

    一、mybatis两种分页实现:

      a):将分页方法中的当前页、和一页显示的记录数封装到Map中  

    public List<User> selectAllUsersByPage(int currentPage, int pageSize) {
            SqlSession sqlSession=null;
            List<User> userList = null;
            try {
                sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                Map<String, Integer> map = new HashMap<String,Integer>();
                map.put("index", (currentPage-1)*pageSize);
                map.put("pageSize", pageSize);
                userList = sqlSession.selectList("edu.aeon.mybatis.entity.UserMapper.selectAllUsersByPage",map);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return userList;
        }
    <select id="selectAllUsersByPage"  resultType="User" parameterType="java.util.Map">
         select uid,uname,upw from user limit #{index},#{pageSize}
     </select>

    测试代码:

    public static void testSelectAllUsersByPage(){
            UserDao userDao =new UserDaoImpl();
            List<User> userList = userDao.selectAllUsersByPage(1,2);
            for(User user:userList){
                System.out.println(user);
            }
        }

      b):通过RowBounds实现、这种方式实现分页无需修改查询SQL语句  

    public List<User> selectAllUsersByPage1(int currentPage, int pageSize) {
            SqlSession sqlSession=null;
            List<User> userList = null;
            try {
                sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                RowBounds rowBounds = new RowBounds((currentPage-1)*pageSize,pageSize);
                userList = sqlSession.selectList("edu.aeon.mybatis.entity.UserMapper.selectAllUsers",null,rowBounds);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return userList;
        }  
    <select id="selectAllUsers" resultType="User">
         select uid,uname,upw from user
     </select>

    测试代码:

    public static void testSelectAllUsersByPage1(){
            UserDao userDao =new UserDaoImpl();
            List<User> userList = userDao.selectAllUsersByPage1(1,2);
            for(User user:userList){
                System.out.println(user);
            }
        }

    当然还有另外一种就是自己封装个page类,既然我们能用更简单的方式去实现同样的功能,为什么我们还要去多此一举呢?我认为没必要!所以此处我将分页分为两种!

    注解分页:

    package edu.aeon.mybatis.dao;
    import java.util.List;
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    import edu.aeon.mybatis.entity.User;
    public interface UserDao {
        @Insert("insert into user(uname,upw) values(#{uname},#{upw})")
        int add(User user);
        @Delete("delete from user where uid=#{uid}")
        int delete(int uid);
        @Update("update user set uname=#{uname},upw=#{upw} where uid=#{uid}")
        int update(User user);
        @Select("select uid,uname,upw from user where uid=#{uid}")
        User selectUserById(int uid);
        @Select("select uid,uname,upw from user")
        List<User> selectAllUsers();
        @Select("select uid,uname,upw from user limit #{index},#{pageSize}")
        List<User> selectAllUsersByPage(@Param("index")int currentPage,@Param("pageSize")int pageSize);
    }
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
     PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <properties resource="database/database_mysql.properties"/>
    <typeAliases>
        <!-- 
        目的:简化配置文件的繁琐性、以前由包名+类名的形式均可变成所指定的别名类型、或者通过包名所配置后的类类型
        -->
        <!-- 第一种方式:为type属性中的内容指定引用别名为alias中的内容、指定之后所有关于type中的类型均可由alias内容代替 -->
        <!-- <typeAlias type="edu.aeon.mybatis.entity.User" alias="User"/> -->
        <!-- 第二种方式:通过包名配置、配置后所有该包下的类型均可有类名代替、不需要由以前的包名+类名的形式 -->
        <package name="edu.aeon.mybatis.entity"/>
    </typeAliases>
     <environments default="development">
     <environment id="development">
     <transactionManager type="JDBC"/>
     <dataSource type="POOLED">
     <property name="driver" value="${driver}"/>
     <property name="url" value="${url}"/>
     <property name="username" value="${username}"/>
     <property name="password" value="${password}"/>
     </dataSource>
     </environment>
     </environments>
     <mappers>
    <!--此处需注意--> <mapper class="edu.aeon.mybatis.dao.UserDao"/> </mappers> </configuration>
    package edu.aeon.mybatis.test;
    
    import java.io.IOException;
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    
    import edu.aeon.mybatis.dao.UserDao;
    import edu.aeon.mybatis.entity.User;
    import edu.aeon.mybatis.utils.MyBatisUtils;
    
    public class Test {
        public static void testInsertUser(){
            try {
                SqlSession sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                UserDao userDao = sqlSession.getMapper(UserDao.class);
                User user = new User();
                user.setUname("testAnnotation");
                user.setUpw("testAnnotation");
                int flag = userDao.add(user);
                sqlSession.commit();
                if(flag>0){
                    System.out.println("插入数据成功!");
                }else{
                    System.out.println("插入数据失败!");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        public static void testdeleteUserById(){
            try {
                SqlSession sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                UserDao userDao = sqlSession.getMapper(UserDao.class);
                int flag = userDao.delete(5);
                sqlSession.commit();
                if(flag>0){
                    System.out.println("删除数据成功!");
                }else{
                    System.out.println("删除数据失败!");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        public static void testUpdateUserById(int uid){
            try {
                SqlSession sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                UserDao userDao = sqlSession.getMapper(UserDao.class);
                User user = userDao.selectUserById(uid);
                user.setUname("testUpdate1");
                user.setUpw("testUpdate1");
                int flag = userDao.update(user);
                sqlSession.commit();
                if(flag>0){
                    System.out.println("更新数据成功!");
                }else{
                    System.out.println("更新数据失败!");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        public static void testSelectUserById(int uid){
                SqlSession sqlSession = null;
                try {
                    sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                    UserDao userDao = sqlSession.getMapper(UserDao.class);
                    User user = userDao.selectUserById(uid);
                    System.out.println(user);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
        }
        
        public static void testSelectAllUsers(){
            try {
                SqlSession sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                UserDao userDao = sqlSession.getMapper(UserDao.class);
                List<User> userList = userDao.selectAllUsers();
                for(User user:userList){
                    System.out.println(user);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        public static void testSelectAllUsersByPage(int index,int pageSize){
            try {
                SqlSession sqlSession = MyBatisUtils.getSqlSesion("mybatis/mybatis.xml");
                UserDao userDao = sqlSession.getMapper(UserDao.class);
                List<User> userList = userDao.selectAllUsersByPage((index-1)*pageSize, pageSize);
                for(User user:userList){
                    System.out.println(user);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            /*testSelectAllUsers(); //ok...*/    
            /*testInsertUser(); //ok...*/    
            /*testdeleteUserById(); //ok...*/
            /*testUpdateUserById(4);ok...*/
            /*testSelectUserById(2);ok...*/
            testSelectAllUsersByPage(2,2);
        }
    }

      

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    android 权限及原理
    通讯协议的相关知识(备忘)
    MongoDB安装以及java开发入门<二>
    Struts2架构图
    Lucene查询对象笔记_TermQuery(笔记)
    mongodb指南(翻译)(二十) developer zone 索引(四)地理信息索引(转载)
    项目结尾公共模块WebService封装
    Redhat 5.5下安装MongoDB
    wsimport生成客户端出现的异常
    Hibernate关于空间表查询时的的一个异常
  • 原文地址:https://www.cnblogs.com/aeon/p/9754286.html
Copyright © 2011-2022 走看看