Springboot整合mybatis plus時的分頁使用
阿新 • • 發佈:2019-02-07
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>