我想在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
会自动以 ''
为边线。所以不需要手动完成
还请查看:
关于java - 如何在 mybatis_dynamic_sql 中为 TO_CHAR(USE_BY_DATE - ? ,'YYYYMMDD' ) >=TRUNC(SYSDATE) 创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435086/