获取MyBatis中的列属性映射关系

获取MyBatis中的列属性映射关系,mybatis,Mybatis,我需要在MyBatis中进行一些动态sql映射,以便让它对每个列执行如下操作: switch (filter.FilterType) { case FilterType.BeginsWith: operatorStr = "UPPER({0}) LIKE '{1}%' "; value = filter.Value.ToUpper(); break;

我需要在MyBatis中进行一些动态sql映射,以便让它对每个列执行如下操作:

switch (filter.FilterType)
        {
            case FilterType.BeginsWith:
                operatorStr = "UPPER({0}) LIKE '{1}%' ";
                value = filter.Value.ToUpper();
                break;
            case FilterType.Contains:
                operatorStr = "UPPER({0}) LIKE '%{1}%' ";
                value = filter.Value.ToUpper();
                break;
            case FilterType.GreaterThan:
                operatorStr = " {0} > {1} ";
                break;
            case FilterType.GreaterThanOrEqual:
                operatorStr = " {0} >= {1} ";
                break;
            case FilterType.LessThan:
                operatorStr = " {0} < {1} ";
                break;
            case FilterType.LessThanOrEqual:
                operatorStr = " {0} <= {1} ";
                break;
        }
我需要这样一个过滤器的原因是,我有一个网页,它以网格的形式显示一个表的数据,并且每一列都是可搜索/可排序的。我不想为每一列编写if-else子句,因此尝试看看Mybatis中的列属性映射是否有助于这项工作

我想有一种方法让Mybatis知道我希望它指向的列在过滤器中是有效的。我知道我可以使用简单的动态方法来实现这一点,方法是在我自己的自定义代码中动态地找出我要过滤的实际列。但我不想在编程源代码中混用实际的表列名。我认为更明智的做法是将类属性名传递到Mybatis的API中,然后让它找出映射到传入的类属性名的实际列

有人知道怎么做吗?Mybatis中是否有API来提供这个列属性映射关系函数,例如,它可以像一个字典一样工作,我传入属性名,然后它给我实际的列名


提前谢谢

mybatis不支持开关,因此您可以使用来实现这一点

<choose>
            <when test=""></when>
            <when test=""></when>
            <when test=""></when>
            <when test=""></when>
            <otherwise></otherwise>
        </choose>
u可以将过滤器类型作为参数传递,然后验证它