MyBatis 多参数综合查询的动态 SQL 实现示例

简介: List findQualityDataOfAppDtoByDeptNoAndAoneProductId( @Param("deptNo") Long deptNo, @Param("aonePr...
    List<QualityDataOfAppDto> findQualityDataOfAppDtoByDeptNoAndAoneProductId(
            @Param("deptNo") Long deptNo,
            @Param("aoneProductId") Long aoneProductId);
    <select id="findQualityDataOfAppDtoByDeptNoAndAoneProductId"
            resultType="com.alibaba.swork.info.common.dto.QualityDataOfAppDto">
        SELECT
        a.id id,
        a.gmt_create gmtCreate,
        a.gmt_modified gmtModified,
        a.app_id appId,
        a.app_name appName,
        a.dept_no deptNo,
        a.dept_name deptName,
        a.aone_product_id aoneProductId,
        a.aone_product_name aoneProductName,
        a.app_score appScore,
        a.line_count lineCount,
        a.complexity complexity,
        a.duplication duplication,
        a.comment_rate commentRate,
        a.ut_rate utRate,
        a.ui_rate uiRate,
        a.it_rate itRate,
        a.static_code_check_value1 staticCodeCheckValue1,
        a.static_code_check_value2 staticCodeCheckValue2,
        a.static_code_check_value3 staticCodeCheckValue3,
        a.static_code_check_value4 staticCodeCheckValue4,
        a.date_stamp dateStamp,
        a.deviation deviation,
        v.base_value appScoreBaseValue,
        b.app_score appScoreRelative,
        b.complexity complexityRelative,
        b.duplication duplicationRelative,
        b.comment_rate commentRateRelative,
        b.ut_rate utRateRelative,
        b.ui_rate uiRateRelative,
        b.it_rate itRateRelative,
        b.static_code_check_value1 staticCodeCheckValue1Relative,
        b.static_code_check_value2 staticCodeCheckValue2Relative,
        b.static_code_check_value3 staticCodeCheckValue3Relative
        FROM quality_data_of_app a
        LEFT JOIN quality_data_app_base_value v on a.app_id = v.app_id
        LEFT JOIN quality_data_of_app b ON a.app_id = b.app_id
        AND a.date_stamp =
        (SELECT max(date_stamp) FROM quality_data_of_app)
        AND b.date_stamp =
        (SELECT date_add(max(date_stamp), INTERVAL -1 DAY) FROM quality_data_of_app)
        WHERE a.date_stamp =
        (SELECT max(date_stamp) FROM quality_data_of_app)
        <if test='deptNo != null and deptNo != 0 '>
            AND a.dept_name LIKE
            (SELECT concat( (select dept_name FROM department WHERE dept_no = #{deptNo}),'%'))
        </if>
        <if test='aoneProductId != null and aoneProductId != 0 '>
            AND a.aone_product_id = #{aoneProductId}
        </if>
        ORDER BY lineCount desc
    </select>
相关文章
|
2月前
|
Java 数据库连接 数据库
mybatis查询数据,返回的对象少了一个字段
mybatis查询数据,返回的对象少了一个字段
135 8
|
1天前
|
SQL 安全 Java
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。
7 1
MyBatis-Plus条件构造器:构建安全、高效的数据库查询
|
7天前
|
SQL Java 数据库连接
mybatis如何仅仅查询某个表的几个字段
【10月更文挑战第19天】mybatis如何仅仅查询某个表的几个字段
9 1
|
19天前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
27 10
|
2月前
|
SQL XML Java
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
2月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
22天前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
49 3
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
43 1
|
3月前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
83 4