-----------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