MyBatis 的 `"}` 包裹。
@Param("name")` 綁定,OGNL 表達式引用 `#{name}`。collection="paramName"`。@Select({""})
Account findByAccountOrEmail(@Param("query") String query);
@Insert({""})
void insertLabels(@Param("companyId") Long companyId, @Param("labels") List<Long> labels);
關鍵:MySQL 單條 SQL 長度限制 (`max_allowed_packet`),超大批次建議分批 500-1000 條。
@Delete({""})
void deleteLabels(@Param("companyId") Long companyId, @Param("labels") List<Long> labels);
@Update({""})
int updateStatus(@Param("status") Integer status, @Param("ids") Long[] ids);
支持 `List
@Select({""})
List<Product> findByIds(@Param("idList") List<Long> idList);
@Select({""})
List<Company> findConditional(
@Param("companyId") Long companyId,
@Param("type") Integer type,
@Param("isScanSameLevel") Integer isScanSameLevel,
@Param("isScanParent") Integer isScanParent,
@Param("level") Integer level);
@Lang(XMLLanguageDriver.class)
@Select({""})
List<Product> searchProducts(
@Param("hotCategoryId") Long hotCategoryId,
@Param("categoryId") Long categoryId,
@Param("keyword") String keyword,
@Param("location") String location,
@Param("methodId") Long methodId,
@Param("orgId") Long orgId);
| 標籤 | 作用 | 常用屬性 |
|---|---|---|
<if test="..."> | 條件包含片段 | test: OGNL 表達式 |
<where> | 智能 WHERE:自動去除首個 AND/OR、若內容為空則不輸出 WHERE | 無 |
<trim prefix="WHERE" suffixOverrides="AND|OR"> | 自定義 WHERE/SET 裁剪 | prefix, suffix, prefixOverrides, suffixOverrides |
<foreach> | 遍歷集合構建 IN/VALUES | collection, item, index, open, separator, close |
<choose/when/otherwise> | 互斥分支 | test |
<bind name="..." value="..."/> | 定義變量供後續使用 | name, value |
MyBatis 動態 SQL 通過 `