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
  • 相关阅读:
    Queue Aizu
    Stack Aizu
    Stack Aizu
    Shell Sort Aizu
    Shell Sort Aizu
    Stable Sort Aizu
    VS2013下.Net Framework4配置FineUI4.14
    VS2013下.Net Framework4配置FineUI4.14
    Ubuntu-14.04.1 desktop安装时遇到的小问题
    Ubuntu-14.04.1 desktop安装时及安装后遇到的小问题
  • 原文地址:https://www.cnblogs.com/somewhater/p/9526329.html
Copyright © 2011-2022 走看看