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>
相关文章
|
21天前
|
SQL 存储 人工智能
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
Vanna 是一个开源的 Python RAG(Retrieval-Augmented Generation)框架,能够基于大型语言模型(LLMs)为数据库生成精确的 SQL 查询。Vanna 支持多种 LLMs、向量数据库和 SQL 数据库,提供高准确性查询,同时确保数据库内容安全私密,不外泄。
91 7
Vanna:开源 AI 检索生成框架,自动生成精确的 SQL 查询
|
7天前
|
SQL XML Java
mybatis实现动态sql
MyBatis的动态SQL功能为开发人员提供了强大的工具来应对复杂的查询需求。通过使用 `<if>`、`<choose>`、`<foreach>`等标签,可以根据不同的条件动态生成SQL语句,从而提高代码的灵活性和可维护性。本文详细介绍了动态SQL的基本用法和实际应用示例,希望对您在实际项目中使用MyBatis有所帮助。
28 11
|
5天前
|
XML Java 数据库连接
Mybatis实现RBAC权限模型查询
通过对RBAC权限模型的理解和MyBatis的灵活使用,我们可以高效地实现复杂的权限管理功能,为应用程序的安全性和可维护性提供有力支持。
24 5
|
28天前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
36 8
|
24天前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
36 3
|
1月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
59 4
|
1月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
1月前
|
SQL 关系型数据库 MySQL
|
29天前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
2月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
147 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。