Keep i2020-12-31 459次浏览原文mybatis通用mapper动态查询表名

五陵年少金市东,银鞍白马渡春风。这篇文章主要讲述mybatis通用mapper动态查询表名相关的知识,希望能为你提供帮助。
1:给个@Table注解,给个默认的表名,不写也可以,但是要驼峰转下划线匹配

@Table(name = "conf_default")

2:添加非表字段参数,用于接受动态表名参数
@Transient//声明非数据库字段
private String tableName;

3:实现接口IDynamicTableName,实现如下方法,2中的属性是返回表名
public String getDynamicTableName() { return tableName; }

源码中这样说的:
/** * 实现动态表名时,实体类需要实现该接口 * * @author liuzh * @since 2015-10-28 22:20 */ public interface IDynamicTableName {/** * 获取动态表名 - 只要有返回值,不是null和‘‘,就会用返回值作为表名 * * @return */ String getDynamicTableName(); }

4:使用如下方式动态查询表
Condition condition = new Condition(ConfDefault.class); condition.setTableName("conf"); //动态配置表明 condition.createCriteria().andCondition("`key` like ‘%1%‘").andCondition("`value` like ‘%1%‘"); condition.setOrderByClause("`key` desc"); List< ConfDefault> list = confDefaultMapper.selectByExample(condition);

生成的sql就是这样了:
SELECT module,`key`,`value`,`desc` FROM conf WHERE ( `key` like ‘%1%‘ and `value` like ‘%1%‘ ) order by `key` desc

【Keep i2020-12-31 459次浏览原文mybatis通用mapper动态查询表名】 

    推荐阅读