zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    mysql基于Altas读写分离并实现高可用
    mysql基于GTIDS复制
    mysql创建用户账号出错
    mysql存储引擎
    mysql读写分离
    for each ;for in;for of 三者的区别
    关于编程的历史
    用indexof来统计字符出现的次数
    正则表达式
    DOM,BOM
  • 原文地址:https://www.cnblogs.com/somewhater/p/9526329.html
Copyright © 2011-2022 走看看