Mybatis执行带有动态标签的sql语句


场景:sql由模板配置动态传参进来,并且要支持动态标签的sql

/**
 * 报表Mapper
 *
 * @author Yangqi.Pang
 */
public interface ReportMapper {

    /**
     * select
     *
     * @param sql      sql
     * @param fieldMap fieldMap
     * @return List
     */
    @SelectProvider(type = SqlProvider.class, method = "buildSql")
    List query(@Param("sql") String sql, @Param("param") Map fieldMap);

    class SqlProvider {
        public String buildSql(Map map) {
            return "";
        }
    }

}