• Mybatisplus 自定义sql 使用条件构造器


    两种方式

    注解方式

    动态查找:
    @Select("select ${ew.SqlSelect} from ${tableName} ${ew.customSqlSegment}")
    List<File> listFileByCondition(@Param("tableName") String tableName, @Param("ew") Wrapper wrapper);
    
    ew.SqlSelect:所需要查找的字段
    
    tableName:使用的是那张表
    
    ew.customSqlSegment:条件
    用法:allFileMapper.listFileByCondition(tableName,Wrappers.query().select("*").in("relation_uuid", uuids));
    结果: select * from tablName where relation_uuid in ()
    
    
    动态修改:
    @Update("update ${tableName} set ${ew.sqlSet} ${ew.customSqlSegment}")
    int updateByCondition(@Param("tableName") String tableName, @Param("ew") Wrapper wrapper);
    
    ew.sqlSet:修改的字段
    
    tableName:使用的是那张表
    
    ew.customSqlSegment:条件
    
    用法:
    mapper.updateByCondition(tableName, Wrappers.update().set("state", "初始状态").in("id", ids));
    结果: update tableName set state = '初始状态' where id in ()
    

    xml方式

    查找:
    <select id="listFileByCondition" resultType="com.example.entity.File">
    	SELECT ${ew.SqlSelect} FROM ${tableName} ${ew.customSqlSegment}
    </select>
    
    
    修改:
    <update id="listFileByCondition" >
    	update ${tableName} ${ew.SqlSelect}  ${ew.customSqlSegment}
    </update>
    

    查找带分页

    xml用法:
    Page<File> selectPage(Page page, @Param("tableName") String tableName, @Param("ew") Wrapper wrapper);
    
    <select id="selectPage" resultType="com.example.entity.File">
            select * from ${tableName} ${ew.customSqlSegment}
    </select>
    
    注解分页:
  • 相关阅读:
    Codeforces 220C
    Codeforces 697D
    HDU 4417
    Codeforces 396C
    Codeforces 246C
    HDU 6333
    HDU 3389
    总结:树上启发式合并
    HDU 6319
    Codeforces 1009G
  • 原文地址:https://www.cnblogs.com/xiami2046/p/13866673.html
Copyright © 2020-2023  润新知