MybatisPlus

张开发
2026/4/21 20:42:24 15 分钟阅读

分享文章

MybatisPlus
1. 实体类注解#非库表字段注解 TableField(exist false)#库表主键注解 TableId(value ID, type IdType.AUTO)数据类型package org.apache.ibatis.type package org.apache.ibatis.type; import java.util.HashMap; import java.util.Map; public enum JdbcType { ARRAY(2003), BIT(-7), TINYINT(-6), SMALLINT(5), INTEGER(4), BIGINT(-5), FLOAT(6), REAL(7), DOUBLE(8), NUMERIC(2), DECIMAL(3), CHAR(1), VARCHAR(12), LONGVARCHAR(-1), DATE(91), TIME(92), TIMESTAMP(93), BINARY(-2), VARBINARY(-3), LONGVARBINARY(-4), NULL(0), OTHER(1111), BLOB(2004), CLOB(2005), BOOLEAN(16), CURSOR(-10), UNDEFINED(-2147482648), NVARCHAR(-9), NCHAR(-15), NCLOB(2011), STRUCT(2002), JAVA_OBJECT(2000), DISTINCT(2001), REF(2006), DATALINK(70), ROWID(-8), LONGNVARCHAR(-16), SQLXML(2009), DATETIMEOFFSET(-155), TIME_WITH_TIMEZONE(2013), TIMESTAMP_WITH_TIMEZONE(2014);2. 查询2.1 LambdaQueryWrapper 的查询public ResponseInfo pagelist(DeviceTypeSerialPageParam param, boolean b) { LambdaQueryWrapperAdmDevTypeSerial wrapper Wrappers.lambdaQuery(AdmDevTypeSerial.class) .select( AdmDevTypeSerial::getId, AdmDevTypeSerial::getDeviceCategory, AdmDevTypeSerial::getDeviceType, AdmDevTypeSerial::getDeviceSN, AdmDevTypeSerial::getExpireTime ); if (StringUtils.isNotEmpty(param.getDeviceSN())) { wrapper.like(AdmDevTypeSerial::getDeviceSN, param.getDeviceSN()); } // 设置分页 PageAdmDevTypeSerial page new Page(); page.setSize(param.getPageSize()); page.setCurrent(param.getPageNum()); admDevTypeSerialMapper.selectPage(page, wrapper); return ResponseUtil.build(ReturnCode.Success, page); }WrapperPersonRelativeEntity wrapper new EntityWrapperPersonRelativeEntity() .eq(Objects.nonNull(personId), PERSON_ID, personId) .eq(Objects.nonNull(relativeId), RELATIVE_ID, relativeId) .eq(Objects.nonNull(relativeType), TYPE, relativeType) .in(CollectionUtils.isNotEmpty(relativeIds), RELATIVE_ID, relativeIds);2.2 构建查询条件,创建LambdaQueryWrapper对象LambdaQueryWrapperUser wrapper new LambdaQueryWrapper();eq,等于 wrapper.eq(User::getName, 张三);ne,不等于 wrapper.ne(User::getAge, 18); 等价于SQL语句 SELECT * FROM user WHERE age 18;gt,大于 wrapper.gt(User::getAge, 18);ge,大于等于: wrapper.ge(User::getAge, 18);lt,小于: wrapper.lt(User::getAge, 18);le,小于等于: wrapper.le(User::getAge, 18);like,模糊 wrapper.like(User::getName, 张%);in,查询 ListString names Arrays.asList(张三, 李四, 王五);wrapper.in(User::getName, names);2.3 组合查询条件,LambdaQueryWrapper支持多个查询条件的组合常用的有以下几种1and方法AND组合查询条件wrapper.eq(User::getName, 张三).and(wrapper1 - wrapper1.gt(User::getAge, 18));2or方法OR组合查询条件wrapper.eq(User::getName, 张三).or(wrapper1 - wrapper1.gt(User::getAge, 18));2.3.1 低版本WrapperThirdLeaveInfoWrapperThirdLeaveInfo sqlWrapper new EntityWrapper(); sqlWrapper.ge(end_date, DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), DatePattern.NORM_DATETIME_PATTERN)); sqlWrapper.and((leave_db 0 or leave_end_db 0)); ListThirdLeaveInfo datas this.baseMapper.selectList(sqlWrapper);2.4 排序和分页1升序orderByAsc wrapper.orderByAsc(User::getAge);2降序orderByDesc wrapper.orderByDesc(User::getAge);3last方法在查询语句的最后面添加SQL语句 wrapper.last(LIMIT 10);4page方法分页查询PageUser page new Page(1, 10);wrapper.eq(User::getName, 张三).page(page);2.5 xml规范AND ALARM_LOCATION LIKE CONCAT(%,#{alarmSourceCodeLike}, %)3. 更新语句3.1 包装类sql 更新WrapperChannelPerson queryWrapper new EntityWrapper(); .updateForSet(hitshits1, new EntityWrapperT().eq(id, id));4. 支持多种数据库4.1 参考连接Mybatis-Plusoracle 和MySQL: https://blog.csdn.net/qq_61723836/article/details/157762142Mybatis-Plus支持多种数据库: https://blog.csdn.net/demon7552003/article/details/148828602Mybatis-Plus入门系列(20) -兼容多种数据库: https://yunyanchengyu.blog.csdn.net/article/details/129161055?fromshareblogdetailsharetypeblogdetailsharerId129161055sharereferPCsharesourcejohnruisharefromfrom_link

更多文章