MyBatis\MyBatis-Plus用法梳理

-----------mybatis9种动态SQL标签用法总结
trim、where、set、foreach、if、choose、when、otherwise、bind

---------------------------mybatis传参map类型
    /**impl 
    */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addTableComment(TFormTable table) {
        String tableId = table.getTableId();
        TFormTable tableByTableId = tFormTableMapper.selectTFormTableByTableId(tableId);
        if (ColumnUtil.columnNameEnum.YES.getValue().equals(tableByTableId.getStatus())) {
            //修改表注释信息
            HashMap<String, Object> tableCommentMap = new HashMap<>(16);
            tableCommentMap.put("tableComment", table.getTableComment());
            tableCommentMap.put("tableName", tableByTableId.getTableName());
            tFormTableMapper.addTableComment(tableCommentMap);
        }
        return tFormTableMapper.updateTFormTable(table);
    }
    /**mapper.java
     * 添加生成表的注释
     */
    public void addTableComment(@Param(value = "tableCommentMap") HashMap<String, Object> tableCommentMap);
    /**mapper.xml
    */
    <update id="addTableComment">
        comment on table ${tableCommentMap.tableName} is '${tableCommentMap.tableComment}'
    </update>

----------------------------myBatis修改  (涉及标签:<trim>,<if>,where)

/**
*mappeer.java
*/
int updateTFormTable(TFormTable tFormTable);
/**
*mapper.xml
/
<update id="updateTFormTable" parameterType="com.ruoyi.project.dataBaseConfig.domain.TFormTable">
        update t_form_table
        <trim prefix="SET" suffixOverrides=",">
            <if test="tableName != null and tableName != ''">
                table_name = #{tableName},
            </if>
            <if test="tableComment != null and tableComment != ''">
                table_comment = #{tableComment},
            </if>
            <if test="status != null and status != ''">
                status = #{status},
            </if>
            <if test="menuId != null">
                menu_id = #{menuId},
            </if>
            <if test="createBy != null">
                create_by = #{createBy},
            </if>
            <if test="createTime != null">
                create_time = #{createTime},
            </if>
            <if test="updateBy != null">
                update_by = #{updateBy},
            </if>
            update_time = sysdate,
            <if test="delFlag != null and delFlag != ''">
                del_flag = #{delFlag},
            </if>
        </trim>
        where table_id = #{tableId}
</update>

--------------------mybatis-plus---------------------------------
AbstractWrapper.ge(大于等于 >=)
AbstractWrapper.gt(大于>)
AbstractWrapper.lt(小于<)
AbstractWrapper.le(小于等于 <=)
AbstractWrapper.ne(不等于 !=)
AbstractWrapper.eq(等于 =)

------------------mybatis-plus动态SQL拼接---------查询-----------------------------
@Override
    public TableDataInfo<SysImport> selectPageSysImportList(SysImport sysImport, PageQuery pageQuery) {
        LambdaQueryWrapper<SysImport> lqw = Wrappers.lambdaQuery();
        lqw.like(StringUtils.isNotBlank(sysImport.getName()),SysImport::getName, sysImport.getName());
        lqw.like(StringUtils.isNotBlank(sysImport.getStatus()), SysImport::getStatus, sysImport.getStatus());
        lqw.ge( sysImport.getStarttime()!= null, SysImport::getStarttime, sysImport.getStarttime());
        lqw.le(sysImport.getEndtime() != null, SysImport::getEndtime, sysImport.getEndtime());
        lqw.like(StringUtils.isNotBlank(sysImport.getRemake()), SysImport::getRemake, sysImport.getRemake());
        lqw.like(StringUtils.isNotBlank(sysImport.getCode()), SysImport::getCode, sysImport.getCode());
        lqw.like(StringUtils.isNotBlank(sysImport.getKey()), SysImport::getKey, sysImport.getKey());
        lqw.like(StringUtils.isNotBlank(sysImport.getJson()), SysImport::getJson, sysImport.getJson());
        lqw.like(StringUtils.isNotBlank(sysImport.getQuery()), SysImport::getQuery, sysImport.getQuery());
        lqw.like(StringUtils.isNotBlank(sysImport.getPerform()), SysImport::getPerform, sysImport.getPerform());
        lqw.like(StringUtils.isNotBlank(sysImport.getDel()), SysImport::getDel, sysImport.getDel());
        Page<SysImport> result = sysImportMapper.selectVoPage(pageQuery.build(), lqw);
        return TableDataInfo.build(result);
    }
 

------------------mybatis-plus DAO(持久层)
public interface CustomImportMapper extends BaseMapperPlus<CustomImportMapper, SysImport, SysImport>{}

-------------mybatis-plus动态SQL拼接---------修改---------------------------
@Override
    public Boolean updateByBo(SysOssConfigBo bo) {
        SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class);
        validEntityBeforeSave(config);
        LambdaUpdateWrapper<SysOssConfig> luw = new LambdaUpdateWrapper<>();
        luw.set(StringUtils.isBlank(config.getPrefix()), SysOssConfig::getPrefix, "");
        luw.set(StringUtils.isBlank(config.getRegion()), SysOssConfig::getRegion, "");
        luw.set(StringUtils.isBlank(config.getExt1()), SysOssConfig::getExt1, "");
        luw.eq(SysOssConfig::getOssConfigId, config.getOssConfigId());
        return setConfigCache(baseMapper.update(config, luw) > 0, config);
    }
------------------mybatis-plus动态SQL拼接---------多表SQL拼接案例-------------------------------------------------
----------impl
@Override
    public TableDataInfo<SysImport> getPageListChild(SysImport sysImport,PageQuery pageQuery) {
        //LambdaQueryWrapper<SysImport> lqw = Wrappers.lambdaQuery();
        //lqw.like(StringUtils.isNotBlank(sysImport.getName()),SysImport::getName, sysImport.getName());
        QueryWrapper<SysImport> wrapper = Wrappers.query();
        wrapper.eq("a.dept_id", sysImport.getDeptId());
        wrapper.like(StringUtils.isNotBlank(sysImport.getName()),"b.name", sysImport.getName());
        wrapper.apply("b.id  not in (select id from SYS_IMPORT  where remake like '%DEFAULT%')");
        wrapper.orderByAsc("b.num");
        Page<SysImport> result = sysImportMapper.getPageListChild(pageQuery.build(), wrapper);
        return TableDataInfo.build(result);
    }

--------mapper
Page<SysImport> getPageListChild(@Param("page")Page<SysImport> page, @Param(Constants.WRAPPER)Wrapper<SysImport> queryWrapper);

-------xml
<sql id="selectPagegetListChildVo">
       select b.id, b.num, b.name, b.status,sys_dept.dept_name, a.dept_id from sys_import_org a
       left join sys_import b  on a.importid = b.id
       left join sys_dept on sys_dept.dept_id = a.dept_id
    </sql>

    <select id="getPageListChild" resultMap="SysImportResult">
        <include refid="selectPagegetListChildVo"/>
        ${ew.getCustomSqlSegment}
    </select>
------推荐学习RuoYi-Vue-Plus

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值