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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM