Mybatis-plus-join使用、mybatis连表
public interface PlanDayMapper extends MPJBaseMapper<PwPlanDayPO> { }
MPJLambdaWrapper<PwPlanDayPO> wrapper = MPJWrappers.lambdaJoin(PwPlanDayPO.class); wrapper.leftJoin(SysStaffPO.class,SysStaffPO::getStaffId,PwPlanDayPO::getLeadCode) .eq(PwPlanDayPO::getId,"14026b06-d626-4099-adfe-91679f41cac2") .select(PwPlanDayPO::getCode) .selectAs(SysStaffPO::getStaffId,PwPlanDayPO::getLeadCode); List<TSscPlanDayDto> dayDtos = planDayMapper.selectJoinList(TSscPlanDayDto.class, wrapper);
SysOrganPOService extends MPJBaseServiceImpl<SysOrganMapper,SysOrganPO> {
生成的sql
SELECT t.`code`,t1.`STAFF_ID` AS leadCode FROM PW_PLAN_DAY t LEFT JOIN SYS_STAFF t1 ON (t1.`STAFF_ID` = t.`lead_code`) WHERE (t.`id` = '14026b06-d626-4099-adfe-91679f41cac2')
引入依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version> </dependency> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join-boot-starter</artifactId> <version>1.4.6</version> </dependency>
likeRight 以什么开头
连表多条件案例
MPJLambdaWrapper<PwPlanDayPO> select = MPJWrappers.lambdaJoin(PwPlanDayPO.class) .leftJoin(PwPlanDayExecutePO.class, PwPlanDayExecutePO::getObjPlan, PwPlanDayPO::getId) .leftJoin(PwEngBasePO.class, PwEngBasePO::getEngId, PwPlanDayPO::getEngId) .leftJoin(PwPlanDayPositionPO.class, PwPlanDayPositionPO::getObjDayplan, PwPlanDayPO::getId) .leftJoin(PwFileInfoTablePO.class, PwFileInfoTablePO::getRelateBussTableId, PwPlanDayPO::getId) .leftJoin(PwPlanOperateLogPO.class, PwPlanOperateLogPO::getObjPlan, PwPlanDayPO::getId) .leftJoin(TSscPlanDayChkPO.class, TSscPlanDayChkPO::getObjDayplan, PwPlanDayPO::getId) .leftJoin(WorkPointPO.class, WorkPointPO::getTaskCode, PwPlanDayPO::getCode) .leftJoin(SysStaffPO.class, on -> on.eq(SysStaffPO::getStaffId, PwPlanDayPositionPO::getPersonCode) .or().eq(SysStaffPO::getStaffId, PwPlanDayPO::getLeadCode)) .selectAll(PwPlanDayPO.class)
排除字段案例
LambdaQueryWrapper<PwPlanDayPositionPO> queryWrapper = Wrappers.lambdaQuery(PwPlanDayPositionPO.class) .eq(PwPlanDayPositionPO::getObjDayplan, objDayplan) .and(and -> and.ne(PwPlanDayPositionPO::getIsDelete, "1").or().isNull(PwPlanDayPositionPO::getIsDelete)) .orderByAsc(PwPlanDayPositionPO::getCreateTime) .select(PwPlanDayPositionPO.class,i->!i.getColumn().equals("id_card"));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-09-04 获取字段名,获取数据库表字段名,获取数据库字段名,获取字段类型,获取数据库字段类型