java - 如何在 mybatis_dynamic_sql 中为 TO_CHAR(USE_BY_DATE - ? ,'YYYYMMDD' ) >=TRUNC(SYSDATE) 创建查询

标签 java mybatis spring-mybatis mybatis-generator

我想在mybatis_dynamic_sql中实现下面的sql查询。

select * from xyz where TO_CHAR(some_date_col - ?,'YYYYMMDD') >=TRUNC(SYSDATE)

最佳答案

如果您使用mapper.xml,您的select可能如下所示。请注意,不要声明特定的 paramterType:

<select
    id="myQueryInXml"
    resultType="[replace with your type]"
    resultMap="[replace with the name of your resultMap]">
    select * from ${tabName} where TO_CHAR(${colName} - #{paramName},'YYYYMMDD') >=TRUNC(SYSDATE)
</select>

相应的接口(interface)-方法可能如下所示

boolean myQueryInXml(
        @Param("colName") final String colName,
        @Param("tabName") final String tabName, 
        @Param("paramName") final String paramName
        );

如果您使用注释,您的接口(interface)方法可能如下所示

@Select("select * from ${tabName} where TO_CHAR(${colName} - #{paramName},'YYYYMMDD') >=TRUNC(SYSDATE)")
boolean myQuery(
        @Param("colName") final String colName,
        @Param("tabName") final String tabName, 
        @Param("paramName") final String paramName
        );

说明

@Param("[用参数名称替换]") 使传递的参数在注释中的给定名称下可用

$ in mapper.xml 或(例如)@Select("[query]") -annotation 告诉 myBatis 打印/使用简单的参数内容。另一方面,# 告诉 myBatis “猜测”数据库类型。例如,String 会自动以 '' 为边线。所以不需要手动完成

还请查看:

mybatis – MyBatis 3 | Mapper XML Files

mybatis – MyBatis 3 | Dynamic SQL

关于java - 如何在 mybatis_dynamic_sql 中为 TO_CHAR(USE_BY_DATE - ? ,'YYYYMMDD' ) >=TRUNC(SYSDATE) 创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435086/

相关文章:

java - 使用entityManager仅更新选定的字段

java - 当我将多个自定义匹配器分配给一个方法时,Mockito 的行为很奇怪

java - @SelectProvider中mybatis参数替换是如何工作的

java - 获取 url 中 RequestParam 的允许值

java - 带有 spring-mybatis 的 spring-boot - 如何强制它记录所有 SQL 查询

java - Netty中如何拒绝传入连接?

java - spring-data-neo4j 有 beforeSave 方法吗?

java - MyBatis 插入关联

Mybatis-Error 设置空参数

java - 如何整合Spring Boot、Camel和Mybatis