定义
getUpdateExpression: 动态生成update 语句
- tableEntity: 表类型的实体。
- filters: 筛选找出对应要更新数据。
举例
Java Code:
@Test
public void testUpdate() throws Exception {
        // find update row.
        FilterDescriptor idFilter =
                new FilterDescriptor(FilterCondition.AND, "productID", FilterOperator.EQUAL, "1");
        Product newProduct = new Product();
        // only update product name
        String productName = "modifiedName";
        newProduct.setProductName(productName);
        ParamExpression paramExpression = mybatisQueryProvider.getUpdateExpression(newProduct, idFilter);
        Map<String, Object> updateParam = new HashMap<>();
        updateParam.put("updateExpression", paramExpression.getExpression());
        updateParam.putAll(paramExpression.getParamMap());
        int result = northwindDao.update(updateParam);
        assertEquals(1, result);
}
mapper
@Mapper
public interface NorthwindDao {
    // ...
    int update(Map<String, Object> params);
}
xml:
<update id="update" parameterType="java.util.Map">
    ${updateExpression}
</update>
output:
JDBC Connection [ProxyConnection[PooledConnection[conn9: url=jdbc:h2:mem:default user=SA]]] will not be managed by Spring
==>  Preparing: UPDATE product SET `product_name`=? WHERE (product_id = ?) 
==> Parameters: modifiedName(String), 1(String)
<==    Updates: 1