mybatis通用mapper动态查询表名

Posted

Keep i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于mybatis通用mapper动态查询表名的主要内容,如果未能解决你的问题,请参考以下文章

通用Mapper

Mybatis之Mapper代理开发

mybatis mapper动态代理

MyBatis通用Mapper技巧

Mybatis之通用mapper使用注解的方式写动态sql-小结

MyBatis框架—动态 SQL配置文件事务