| | |
| | | package com.iailab.framework.mybatis.core.util; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import com.iailab.framework.common.pojo.PageParam; |
| | | import com.iailab.framework.common.pojo.SortingField; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.annotation.DbType; |
| | | import com.baomidou.mybatisplus.core.metadata.OrderItem; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringPool; |
| | | import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; |
| | | import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.iailab.framework.common.pojo.PageParam; |
| | | import com.iailab.framework.common.pojo.SortingField; |
| | | import com.iailab.framework.mybatis.core.enums.DbTypeEnum; |
| | | import net.sf.jsqlparser.expression.Alias; |
| | | import net.sf.jsqlparser.schema.Column; |
| | | import net.sf.jsqlparser.schema.Table; |
| | |
| | | |
| | | /** |
| | | * 获得 Table 对应的表名 |
| | | * |
| | | * <p> |
| | | * 兼容 MySQL 转义表名 `t_xxx` |
| | | * |
| | | * @param table 表 |
| | |
| | | return new Column(tableName + StringPool.DOT + column); |
| | | } |
| | | |
| | | /** |
| | | * 跨数据库的 find_in_set 实现 |
| | | * |
| | | * @param column 字段名称 |
| | | * @param value 查询值(不带单引号) |
| | | * @return sql |
| | | */ |
| | | public static String findInSet(String column, Object value) { |
| | | // 这里不用SqlConstants.DB_TYPE,因为它是使用 primary 数据源的 url 推断出来的类型 |
| | | DbType dbType = JdbcUtils.getDbType(); |
| | | return DbTypeEnum.getFindInSetTemplate(dbType) |
| | | .replace("#{column}", column) |
| | | .replace("#{value}", StrUtil.toString(value)); |
| | | } |
| | | |
| | | } |