1. 程式人生 > >Springboot整合mybatis plus時的分頁使用

Springboot整合mybatis plus時的分頁使用

1.新增架包

com.baomidou.mybatis-plus

2.配置檔案

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    max-threads: 1000
    min-spare-threads: 30
  port: 8080
  servlet:
    context-path: /

spring:
  profiles:
    active: dev
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  servlet:
    multipart:
      max-file-size: 100MB
      max-request-size: 100MB
      enabled: true
  redis:
    database: 0
    host: 116.62.117.145
    port: 6379
    password: ziyun123      # 密碼(預設為空)
    timeout: 6000ms  # 連線超時時長(毫秒)
    jedis:
      pool:
        max-active: 1000  # 連線池最大連線數(使用負值表示沒有限制)
        max-wait: -1ms      # 連線池最大阻塞等待時間(使用負值表示沒有限制)
        max-idle: 10      # 連線池中的最大空閒連線
        min-idle: 5       # 連線池中的最小空閒連線
  freemarker:
    suffix: .html
    request-context-attribute: request


renren:
  redis:
    open: true  # 是否開啟redis快取  true開啟   false關閉
  shiro:
    redis: true # true表示shiro session存到redis裡,需要開啟redis,才會生效【分散式場景】
  schedule:
    open: true #開啟 關閉定時任務


j2cache:
  configLocation: /j2cache-dev.properties
  openSpringCache: false

#mybatis
mybatis-plus:
  mapper-locations: classpath*:mapper/**/*.xml
  #實體掃描,多個package用逗號或者分號分隔
  typeAliasesPackage: io.renren.modules.*.entity;
  global-config:
    #主鍵型別  0:"資料庫ID自增", 1:"使用者輸入ID",2:"全域性唯一ID (數字型別唯一ID)", 3:"全域性唯一ID UUID";
    id-type: 0
    #欄位策略 0:"忽略判斷",1:"非 NULL 判斷"),2:"非空判斷"
    field-strategy: 2
    #駝峰下劃線轉換
    db-column-underline: true
    #重新整理mapper 除錯神器
    refresh-mapper: true
    #資料庫大寫下劃線轉換
    #capital-mode: true
    # Sequence序列介面實現類配置
    #key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
    #邏輯刪除配置
    logic-delete-value: -1
    logic-not-delete-value: 0
    #自定義填充策略介面實現
    #meta-object-handler: com.baomidou.springboot.xxx
    #自定義SQL注入器
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true

# 日誌
logging:
#  level: debug
#  level.io.renren: debug
  path: logs/
  file: admin.log
  level:
      com.ziyun.erp.modules.*.dao: debug

單表分頁

<select id="selectUserList" parameterType="map" resultType="com.test.mybatisplus.pojo.User">
        SELECT
        <include refid="Base_Column_List" />
        FROM user
        WHERE name LIKE CONCAT("%",#{name},"%")
    </select>

Java程式碼

 public static void testPageListUser() {
        Page<User> page = new Page<User>(1,10);

        Map<String, Object> params=new HashMap<String, Object>();
        condition.put("name", "測試");
        //String name="測試";
        List<User> lstUser = userDao.selectUserList(page,params);
      
    }

在人人框架中使用

單表不用寫sql

package com.ziyun.erp.modules.member.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.Query;

import com.ziyun.erp.modules.member.dao.ConfigMemberLevelDao;
import com.ziyun.erp.modules.member.entity.ConfigMemberLevelEntity;
import com.ziyun.erp.modules.member.service.ConfigMemberLevelService;
import org.springframework.transaction.annotation.Transactional;


@Service("configMemberLevelService")
public class ConfigMemberLevelServiceImpl extends ServiceImpl<ConfigMemberLevelDao, ConfigMemberLevelEntity> implements ConfigMemberLevelService {

    @Autowired
    private ConfigMemberLevelDao configMemberLevelDao;

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<ConfigMemberLevelEntity> page = this.selectPage(
                new Query<ConfigMemberLevelEntity>(params).getPage(),
                new EntityWrapper<ConfigMemberLevelEntity>()
        );

        return new PageUtils(page);
    }

多表查詢分頁需自己寫sql

ServiceImpl

package com.ziyun.erp.modules.member.service.impl;

import com.ziyun.erp.common.utils.MD5;
import com.ziyun.erp.modules.member.dao.*;
import com.ziyun.erp.modules.member.entity.*;
import io.renren.common.exception.RRException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.Query;

import com.ziyun.erp.modules.member.service.UserBaseInfoService;
import org.springframework.transaction.annotation.Transactional;


@Service("userBaseInfoService")
public class UserBaseInfoServiceImpl extends ServiceImpl<UserBaseInfoDao, UserBaseInfoEntity> implements UserBaseInfoService {

    @Autowired
    private UserBaseInfoDao userBaseInfoDao;
    @Autowired
    private UserWalletDao userWalletDao;
    @Autowired
    private UserAdvanceDao userAdvanceDao;
    @Autowired
    private UserCreditDao userCreditDao;
    @Autowired
    private UserPointDao userPointDao;
    @Autowired
    private UserMemberLevelDao userMemberLevelDao;
    @Autowired
    private UserLoginAccountDao userLoginAccountDao;
    @Override
    public PageUtils selectAllList(Map<String, Object> params) {
        Page<UserBaseInfoVO> page = new Page<>();
        page.setCurrent(Integer.valueOf(params.get("page").toString()));
        page.setSize(Integer.valueOf(params.get("limit").toString()));
        List<UserBaseInfoVO> list = userBaseInfoDao.getAllUserInfo(page,params);
        page.setRecords(list);
        return new PageUtils(page);
    }

Dao層方法的引數傳入Pagination page即可

List<UserBaseInfoVO> getAllUserInfo(Pagination page,Map<String, Object> map);

Xml

 <select id="getAllUserInfo" parameterType="map" resultType="com.ziyun.erp.modules.member.entity.UserBaseInfoVO">
          SELECT
              <include refid="userBaseInfo"/>
        FROM
        `user_base_info` a
        LEFT JOIN `user_member_level` b ON a.`member_id` = b.`member_id`
        LEFT JOIN `config_member_level` c ON b.`member_lv_id` = c.`member_lv_id`
        LEFT JOIN `user_wallet` d ON a.`member_id` = d.`user_id`
        LEFT JOIN `user_login_census` e on a.`member_id` = e.`member_id`
        <include refid="searchCondition"/>
        order by a.regtime desc
    </select>