我想在mybatis_dynamic_sql中实现以下sql查询。
select * from xyz where TO_CHAR(some_date_col - ?,'YYYYMMDD') >=TRUNC(SYSDATE)
答案 0 :(得分:0)
如果您使用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("[replace with a parameter-name]")
使传递的参数在注释中以给定名称可用
$
中的 mapper.xml
或(例如)@Select("[query]")
中的注释告诉myBatis打印/使用普通参数内容。另一方面,#
告诉myBatis“猜测”数据库类型。例如,String
个在''
中自动变小。因此无需手动进行
也请看看: