在 MyBatis-Plus 中,AbstractWrapper 是条件构造器的抽象基类,它为 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 提供了一些公共的方法和属性。这些方法和属性可以用于构建灵活的查询和更新条件。

以下是 AbstractWrapper 的一些主要方法和属性:

1. 公共属性

  •  protected final LinkedHashMap<String, Object> paramNameValuePairs: 存储参数名和参数值的映射关系。在构建 SQL 语句时,这个映射用于生成条件部分。


2. 方法

  •  public String getSqlSegment(): 获取 SQL 片段,用于条件构造器中生成 SQL 语句的 WHERE 子句。


  •  public String getParamAlias(): 获取参数别名,用于条件构造器中生成 SQL 语句的参数别名。


  •  protected void initEntityClass(T entity): 初始化实体类。在 Lambda 表达式条件构造器中,需要通过这个方法来初始化实体类信息。


  •  protected String columnsToString(String... columns): 将列名数组转换成以逗号分隔的字符串。


  •  protected boolean isNotEmptyOfEntity(T entity): 判断实体对象是否非空。


  •  protected String getSqlSelectColumns(boolean queryWrapper): 获取 SQL 语句中的 SELECT 子句,用于查询。


3. 使用示例
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25)
            .like("name", "John");

String sqlSegment = queryWrapper.getSqlSegment(); // 获取 SQL 片段
String paramAlias = queryWrapper.getParamAlias(); // 获取参数别名

在上述示例中,getSqlSegment 方法可以用于获取构建的 SQL 片段,getParamAlias 方法可以获取参数别名。

AbstractWrapper 的这些方法和属性为条件构造器提供了一些基础的功能,方便了在构建查询和更新条件时的操作。这些方法和属性的具体实现在 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 中有所不同,但它们都继承自 AbstractWrapper。在需要更深入理解和定制条件构造器时,你可以查阅 MyBatis-Plus 的源码或官方文档。


转载请注明出处:http://www.zyzy.cn/article/detail/7052/MyBatis