SpringBoot實現多個數據原讀取

由於項目中需要連接兩個mysql數據原,所以需要兩套訪問配置


連接串配置在需要用到數據庫連接項目中db.properties

mysql.dbUrl=jdbc:mysql://127.0.0.1:3306/envmanagement?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&allowMultiQueries=true
mysql.dbUser=root
mysql.dbPassword=123456

mysql2.dbUrl=jdbc:mysql://172.16.100.30:3306/better?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useOldAliasMetadataBehavior=true&allowMultiQueries=true
mysql2.dbUser=root
mysql2.dbPassword=123456

應用站點的Springboot啓動class Application 中加入配置文件的讀取



配置1

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ConnectionConfig {

    @Value("${sqlserver.dbUrl}")
    private String sqlserverDbUrl;
    @Value("${sqlserver.dbUser}")
    private String sqlserverDbUser;
    @Value("${sqlserver.dbPassword}")
    private String sqlserverDbPassword;

    @Value("${mysql.dbUrl}")
    private String mysqlDbUrl;
    @Value("${mysql.dbUser}")
    private String mySqlDbUser;
    @Value("${mysql.dbPassword}")
    private String mysqlDbPassword;


    public String getSqlserverDbUrl() {
        return sqlserverDbUrl;
    }

    public void setSqlserverDbUrl(String sqlserverDbUrl) {
        this.sqlserverDbUrl = sqlserverDbUrl;
    }

    public String getSqlserverDbUser() {
        return sqlserverDbUser;
    }

    public void setSqlserverDbUser(String sqlserverDbUser) {
        this.sqlserverDbUser = sqlserverDbUser;
    }

    public String getSqlserverDbPassword() {
        return sqlserverDbPassword;
    }

    public void setSqlserverDbPassword(String sqlserverDbPassword) {
        this.sqlserverDbPassword = sqlserverDbPassword;
    }

    public String getMysqlDbUrl() {
        return mysqlDbUrl;
    }

    public void setMysqlDbUrl(String mysqlDbUrl) {
        this.mysqlDbUrl = mysqlDbUrl;
    }

    public String getMySqlDbUser() {
        return mySqlDbUser;
    }

    public void setMySqlDbUser(String mySqlDbUser) {
        this.mySqlDbUser = mySqlDbUser;
    }

    public String getMysqlDbPassword() {
        return mysqlDbPassword;
    }

    public void setMysqlDbPassword(String mysqlDbPassword) {
        this.mysqlDbPassword = mysqlDbPassword;
    }
}


配置2

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class ConnectionConfig2 {

    @Value("${mysql2.dbUrl}")
    private String mysqlDbUrl2;
    @Value("${mysql2.dbUser}")
    private String mySqlDbUser2;
    @Value("${mysql2.dbPassword}")
    private String mysqlDbPassword2;

    public String getMysqlDbUrl2() {
        return mysqlDbUrl2;
    }

    public void setMysqlDbUrl2(String mysqlDbUrl2) {
        this.mysqlDbUrl2 = mysqlDbUrl2;
    }

    public String getMySqlDbUser2() {
        return mySqlDbUser2;
    }

    public void setMySqlDbUser2(String mySqlDbUser2) {
        this.mySqlDbUser2 = mySqlDbUser2;
    }

    public String getMysqlDbPassword2() {
        return mysqlDbPassword2;
    }

    public void setMysqlDbPassword2(String mysqlDbPassword2) {
        this.mysqlDbPassword2 = mysqlDbPassword2;
    }
}

mybatis配置1

import com.alibaba.druid.pool.DruidDataSource;
//import com.baidu.disconf.client.DisconfMgrBeanSecond;
import com.ymatou.envmanagement.infrastructure.util.DataSourceUtils;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.support.TransactionTemplate;

import javax.sql.DataSource;
import java.util.Properties;


@Configuration
@MapperScan(
        basePackages = {
                "com.ymatou.envmanagement.infrastructure.mysqldb.mapper",
                "com.ymatou.envmanagement.infrastructure.mysqldb.query"
        },
        sqlSessionTemplateRef = "mySqlSessionTemplate"
)
@EnableTransactionManagement(proxyTargetClass = true)
public class MySqlDataSourceConfig {
    @Autowired
    private ConnectionConfig connectionConfig;

    //加上這個隱性依賴
//    @Autowired
//    private DisconfMgrBeanSecond disconfMgrBeanSecond;

    @Bean(name = "mySqlDataSource")
    public DataSource mySqlDataSource() {

        DruidDataSource dataSource = DataSourceUtils.initDataSource();
        dataSource.setUrl(connectionConfig.getMysqlDbUrl());
        dataSource.setUsername(connectionConfig.getMySqlDbUser());
        dataSource.setPassword(connectionConfig.getMysqlDbPassword());
        return dataSource;
    }

    @Bean(name = "mySqlSessionFactory")
    public SqlSessionFactory mySqlSessionFactory() throws Exception {

        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

        // 獲取properties中的對應配置信息
        String mapperLocation = "classpath*:sqlmap/mysql/**/*.xml";
        String configLocation = "classpath:mybatis-settings.xml";

        Properties properties = new Properties();

        sessionFactory.setDataSource(mySqlDataSource());
        sessionFactory.setConfigurationProperties(properties);

        // 設置MapperLocations configLocation路徑
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resourcePatternResolver.getResources(mapperLocation));
        sessionFactory.setConfigLocation(resourcePatternResolver.getResource(configLocation));

        return sessionFactory.getObject();
    }

    @Bean(name = "mySqlSessionTemplate")
    public SqlSessionTemplate mySqlSessionTemplate() throws Exception {
        SqlSessionTemplate sqlSession = new SqlSessionTemplate(mySqlSessionFactory());
        return sqlSession;
    }


    @Bean(name = "mySqlTransactionManager")
    public PlatformTransactionManager mySqlTransactionManager() {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(mySqlDataSource());
        //transactionManager.setDefaultTimeout(1);
        return transactionManager;
    }

    @Bean(name = "mySqlTransactionTemplate")
    public TransactionTemplate mySqlTransactionTemplate() {
        return new TransactionTemplate(mySqlTransactionManager());
    }

}

mybatis配置2

import com.alibaba.druid.pool.DruidDataSource;
import com.ymatou.envmanagement.infrastructure.util.DataSourceUtils;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.support.TransactionTemplate;

import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@MapperScan(
        basePackages = {
                "com.ymatou.envmanagement.infrastructure.mysqldb2.mapper",
                "com.ymatou.envmanagement.infrastructure.mysqldb2.query"
        },
        sqlSessionTemplateRef = "mySqlSessionTemplate2"
)
@EnableTransactionManagement(proxyTargetClass = true)
public class MySqlDataSourceConfig2 {
    @Autowired
    private ConnectionConfig2 connectionConfig2;

    //加上這個隱性依賴
//    @Autowired
//    private DisconfMgrBeanSecond disconfMgrBeanSecond;

    @Bean(name = "mySqlDataSource2")
    public DataSource mySqlDataSource() {

        DruidDataSource dataSource = DataSourceUtils.initDataSource();
        dataSource.setUrl(connectionConfig2.getMysqlDbUrl2());
        dataSource.setUsername(connectionConfig2.getMySqlDbUser2());
        dataSource.setPassword(connectionConfig2.getMysqlDbPassword2());
        return dataSource;
    }

    @Bean(name = "mySqlSessionFactory2")
    public SqlSessionFactory mySqlSessionFactory() throws Exception {

        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

        // 獲取properties中的對應配置信息
        String mapperLocation = "classpath*:sqlmap/mysql2/**/*.xml";
        String configLocation = "classpath:mybatis-settings.xml";

        Properties properties = new Properties();

        sessionFactory.setDataSource(mySqlDataSource());
        sessionFactory.setConfigurationProperties(properties);

        // 設置MapperLocations configLocation路徑
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resourcePatternResolver.getResources(mapperLocation));
        sessionFactory.setConfigLocation(resourcePatternResolver.getResource(configLocation));

        return sessionFactory.getObject();
    }

    @Bean(name = "mySqlSessionTemplate2")
    public SqlSessionTemplate mySqlSessionTemplate() throws Exception {
        SqlSessionTemplate sqlSession = new SqlSessionTemplate(mySqlSessionFactory());
        return sqlSession;
    }


    @Bean(name = "mySqlTransactionManager2")
    public PlatformTransactionManager mySqlTransactionManager() {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(mySqlDataSource());
        //transactionManager.setDefaultTimeout(1);
        return transactionManager;
    }

    @Bean(name = "mySqlTransactionTemplate2")
    public TransactionTemplate mySqlTransactionTemplate() {
        return new TransactionTemplate(mySqlTransactionManager());
    }

mybatis-generator

可以用mybatis-generator來生成固定的ORM代碼,具體操作參考:http://blog.csdn.net/chenjiazhu/article/details/77849645

ORM代碼示例

以node表做示例


NodePo
public class NodePo {
    /**
     * id INTEGER(10) 必填<br>
     * 
     */
    private Integer id;

    /**
     * name VARCHAR(200)<br>
     * 
     */
    private String name;

    /**
     * url VARCHAR(500)<br>
     * 
     */
    private String url;

    /**
     * sitstatus BIT 默認值[0]<br>
     * 
     */
    private Boolean sitstatus;

    /**
     * time VARCHAR(50)<br>
     * 
     */
    private String time;

    /**
     * active BIT 默認值[0]<br>
     * 
     */
    private Boolean active;

    /**
     * domain VARCHAR(50)<br>
     * 
     */
    private String domain;

    /**
     * script VARCHAR(500)<br>
     * 
     */
    private String script;

    /**
     * stressstatus BIT 默認值[0]<br>
     * 
     */
    private Boolean stressstatus;

    /**
     * uatstatus BIT 默認值[0]<br>
     * 
     */
    private Boolean uatstatus;

    /**
     * checktype INTEGER(10) 默認值[1]<br>
     * 
     */
    private Integer checktype;

    /**
     * checkvalue VARCHAR(200) 默認值[ok]<br>
     * 
     */
    private String checkvalue;

    /**
     * stressemailactive BIT 默認值[0]<br>
     * 
     */
    private Boolean stressemailactive;

    /**
     * emails VARCHAR(500)<br>
     * 
     */
    private String emails;

    /**
     * sitemailactive BIT<br>
     * 
     */
    private Boolean sitemailactive;

    /**
     * uatemailactive BIT 默認值[1]<br>
     * 
     */
    private Boolean uatemailactive;

    /**
     * nodecol VARCHAR(45) 默認值[1]<br>
     * 
     */
    private String nodecol;

    /**
     * cron VARCHAR(100)<br>
     * 
     */
    private String cron;

    /**
     * id INTEGER(10) 必填<br>
     * 獲得 
     */
    public Integer getId() {
        return id;
    }

    /**
     * id INTEGER(10) 必填<br>
     * 設置 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * name VARCHAR(200)<br>
     * 獲得 
     */
    public String getName() {
        return name;
    }

    /**
     * name VARCHAR(200)<br>
     * 設置 
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * url VARCHAR(500)<br>
     * 獲得 
     */
    public String getUrl() {
        return url;
    }

    /**
     * url VARCHAR(500)<br>
     * 設置 
     */
    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

    /**
     * sitstatus BIT 默認值[0]<br>
     * 獲得 
     */
    public Boolean getSitstatus() {
        return sitstatus;
    }

    /**
     * sitstatus BIT 默認值[0]<br>
     * 設置 
     */
    public void setSitstatus(Boolean sitstatus) {
        this.sitstatus = sitstatus;
    }

    /**
     * time VARCHAR(50)<br>
     * 獲得 
     */
    public String getTime() {
        return time;
    }

    /**
     * time VARCHAR(50)<br>
     * 設置 
     */
    public void setTime(String time) {
        this.time = time == null ? null : time.trim();
    }

    /**
     * active BIT 默認值[0]<br>
     * 獲得 
     */
    public Boolean getActive() {
        return active;
    }

    /**
     * active BIT 默認值[0]<br>
     * 設置 
     */
    public void setActive(Boolean active) {
        this.active = active;
    }

    /**
     * domain VARCHAR(50)<br>
     * 獲得 
     */
    public String getDomain() {
        return domain;
    }

    /**
     * domain VARCHAR(50)<br>
     * 設置 
     */
    public void setDomain(String domain) {
        this.domain = domain == null ? null : domain.trim();
    }

    /**
     * script VARCHAR(500)<br>
     * 獲得 
     */
    public String getScript() {
        return script;
    }

    /**
     * script VARCHAR(500)<br>
     * 設置 
     */
    public void setScript(String script) {
        this.script = script == null ? null : script.trim();
    }

    /**
     * stressstatus BIT 默認值[0]<br>
     * 獲得 
     */
    public Boolean getStressstatus() {
        return stressstatus;
    }

    /**
     * stressstatus BIT 默認值[0]<br>
     * 設置 
     */
    public void setStressstatus(Boolean stressstatus) {
        this.stressstatus = stressstatus;
    }

    /**
     * uatstatus BIT 默認值[0]<br>
     * 獲得 
     */
    public Boolean getUatstatus() {
        return uatstatus;
    }

    /**
     * uatstatus BIT 默認值[0]<br>
     * 設置 
     */
    public void setUatstatus(Boolean uatstatus) {
        this.uatstatus = uatstatus;
    }

    /**
     * checktype INTEGER(10) 默認值[1]<br>
     * 獲得 
     */
    public Integer getChecktype() {
        return checktype;
    }

    /**
     * checktype INTEGER(10) 默認值[1]<br>
     * 設置 
     */
    public void setChecktype(Integer checktype) {
        this.checktype = checktype;
    }

    /**
     * checkvalue VARCHAR(200) 默認值[ok]<br>
     * 獲得 
     */
    public String getCheckvalue() {
        return checkvalue;
    }

    /**
     * checkvalue VARCHAR(200) 默認值[ok]<br>
     * 設置 
     */
    public void setCheckvalue(String checkvalue) {
        this.checkvalue = checkvalue == null ? null : checkvalue.trim();
    }

    /**
     * stressemailactive BIT 默認值[0]<br>
     * 獲得 
     */
    public Boolean getStressemailactive() {
        return stressemailactive;
    }

    /**
     * stressemailactive BIT 默認值[0]<br>
     * 設置 
     */
    public void setStressemailactive(Boolean stressemailactive) {
        this.stressemailactive = stressemailactive;
    }

    /**
     * emails VARCHAR(500)<br>
     * 獲得 
     */
    public String getEmails() {
        return emails;
    }

    /**
     * emails VARCHAR(500)<br>
     * 設置 
     */
    public void setEmails(String emails) {
        this.emails = emails == null ? null : emails.trim();
    }

    /**
     * sitemailactive BIT<br>
     * 獲得 
     */
    public Boolean getSitemailactive() {
        return sitemailactive;
    }

    /**
     * sitemailactive BIT<br>
     * 設置 
     */
    public void setSitemailactive(Boolean sitemailactive) {
        this.sitemailactive = sitemailactive;
    }

    /**
     * uatemailactive BIT 默認值[1]<br>
     * 獲得 
     */
    public Boolean getUatemailactive() {
        return uatemailactive;
    }

    /**
     * uatemailactive BIT 默認值[1]<br>
     * 設置 
     */
    public void setUatemailactive(Boolean uatemailactive) {
        this.uatemailactive = uatemailactive;
    }

    /**
     * nodecol VARCHAR(45) 默認值[1]<br>
     * 獲得 
     */
    public String getNodecol() {
        return nodecol;
    }

    /**
     * nodecol VARCHAR(45) 默認值[1]<br>
     * 設置 
     */
    public void setNodecol(String nodecol) {
        this.nodecol = nodecol == null ? null : nodecol.trim();
    }

    /**
     * cron VARCHAR(100)<br>
     * 獲得 
     */
    public String getCron() {
        return cron;
    }

    /**
     * cron VARCHAR(100)<br>
     * 設置 
     */
    public void setCron(String cron) {
        this.cron = cron == null ? null : cron.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", url=").append(url);
        sb.append(", sitstatus=").append(sitstatus);
        sb.append(", time=").append(time);
        sb.append(", active=").append(active);
        sb.append(", domain=").append(domain);
        sb.append(", script=").append(script);
        sb.append(", stressstatus=").append(stressstatus);
        sb.append(", uatstatus=").append(uatstatus);
        sb.append(", checktype=").append(checktype);
        sb.append(", checkvalue=").append(checkvalue);
        sb.append(", stressemailactive=").append(stressemailactive);
        sb.append(", emails=").append(emails);
        sb.append(", sitemailactive=").append(sitemailactive);
        sb.append(", uatemailactive=").append(uatemailactive);
        sb.append(", nodecol=").append(nodecol);
        sb.append(", cron=").append(cron);
        sb.append("]");
        return sb.toString();
    }

NodeExample
import java.util.ArrayList;
import java.util.List;

public class NodeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public NodeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andUrlIsNull() {
            addCriterion("url is null");
            return (Criteria) this;
        }

        public Criteria andUrlIsNotNull() {
            addCriterion("url is not null");
            return (Criteria) this;
        }

        public Criteria andUrlEqualTo(String value) {
            addCriterion("url =", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlNotEqualTo(String value) {
            addCriterion("url <>", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlGreaterThan(String value) {
            addCriterion("url >", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlGreaterThanOrEqualTo(String value) {
            addCriterion("url >=", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlLessThan(String value) {
            addCriterion("url <", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlLessThanOrEqualTo(String value) {
            addCriterion("url <=", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlLike(String value) {
            addCriterion("url like", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlNotLike(String value) {
            addCriterion("url not like", value, "url");
            return (Criteria) this;
        }

        public Criteria andUrlIn(List<String> values) {
            addCriterion("url in", values, "url");
            return (Criteria) this;
        }

        public Criteria andUrlNotIn(List<String> values) {
            addCriterion("url not in", values, "url");
            return (Criteria) this;
        }

        public Criteria andUrlBetween(String value1, String value2) {
            addCriterion("url between", value1, value2, "url");
            return (Criteria) this;
        }

        public Criteria andUrlNotBetween(String value1, String value2) {
            addCriterion("url not between", value1, value2, "url");
            return (Criteria) this;
        }

        public Criteria andSitstatusIsNull() {
            addCriterion("sitstatus is null");
            return (Criteria) this;
        }

        public Criteria andSitstatusIsNotNull() {
            addCriterion("sitstatus is not null");
            return (Criteria) this;
        }

        public Criteria andSitstatusEqualTo(Boolean value) {
            addCriterion("sitstatus =", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusNotEqualTo(Boolean value) {
            addCriterion("sitstatus <>", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusGreaterThan(Boolean value) {
            addCriterion("sitstatus >", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusGreaterThanOrEqualTo(Boolean value) {
            addCriterion("sitstatus >=", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusLessThan(Boolean value) {
            addCriterion("sitstatus <", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusLessThanOrEqualTo(Boolean value) {
            addCriterion("sitstatus <=", value, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusIn(List<Boolean> values) {
            addCriterion("sitstatus in", values, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusNotIn(List<Boolean> values) {
            addCriterion("sitstatus not in", values, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusBetween(Boolean value1, Boolean value2) {
            addCriterion("sitstatus between", value1, value2, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andSitstatusNotBetween(Boolean value1, Boolean value2) {
            addCriterion("sitstatus not between", value1, value2, "sitstatus");
            return (Criteria) this;
        }

        public Criteria andTimeIsNull() {
            addCriterion("time is null");
            return (Criteria) this;
        }

        public Criteria andTimeIsNotNull() {
            addCriterion("time is not null");
            return (Criteria) this;
        }

        public Criteria andTimeEqualTo(String value) {
            addCriterion("time =", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotEqualTo(String value) {
            addCriterion("time <>", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThan(String value) {
            addCriterion("time >", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeGreaterThanOrEqualTo(String value) {
            addCriterion("time >=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThan(String value) {
            addCriterion("time <", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLessThanOrEqualTo(String value) {
            addCriterion("time <=", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeLike(String value) {
            addCriterion("time like", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotLike(String value) {
            addCriterion("time not like", value, "time");
            return (Criteria) this;
        }

        public Criteria andTimeIn(List<String> values) {
            addCriterion("time in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotIn(List<String> values) {
            addCriterion("time not in", values, "time");
            return (Criteria) this;
        }

        public Criteria andTimeBetween(String value1, String value2) {
            addCriterion("time between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andTimeNotBetween(String value1, String value2) {
            addCriterion("time not between", value1, value2, "time");
            return (Criteria) this;
        }

        public Criteria andActiveIsNull() {
            addCriterion("active is null");
            return (Criteria) this;
        }

        public Criteria andActiveIsNotNull() {
            addCriterion("active is not null");
            return (Criteria) this;
        }

        public Criteria andActiveEqualTo(Boolean value) {
            addCriterion("active =", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveNotEqualTo(Boolean value) {
            addCriterion("active <>", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveGreaterThan(Boolean value) {
            addCriterion("active >", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveGreaterThanOrEqualTo(Boolean value) {
            addCriterion("active >=", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveLessThan(Boolean value) {
            addCriterion("active <", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveLessThanOrEqualTo(Boolean value) {
            addCriterion("active <=", value, "active");
            return (Criteria) this;
        }

        public Criteria andActiveIn(List<Boolean> values) {
            addCriterion("active in", values, "active");
            return (Criteria) this;
        }

        public Criteria andActiveNotIn(List<Boolean> values) {
            addCriterion("active not in", values, "active");
            return (Criteria) this;
        }

        public Criteria andActiveBetween(Boolean value1, Boolean value2) {
            addCriterion("active between", value1, value2, "active");
            return (Criteria) this;
        }

        public Criteria andActiveNotBetween(Boolean value1, Boolean value2) {
            addCriterion("active not between", value1, value2, "active");
            return (Criteria) this;
        }

        public Criteria andDomainIsNull() {
            addCriterion("domain is null");
            return (Criteria) this;
        }

        public Criteria andDomainIsNotNull() {
            addCriterion("domain is not null");
            return (Criteria) this;
        }

        public Criteria andDomainEqualTo(String value) {
            addCriterion("domain =", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainNotEqualTo(String value) {
            addCriterion("domain <>", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainGreaterThan(String value) {
            addCriterion("domain >", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainGreaterThanOrEqualTo(String value) {
            addCriterion("domain >=", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainLessThan(String value) {
            addCriterion("domain <", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainLessThanOrEqualTo(String value) {
            addCriterion("domain <=", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainLike(String value) {
            addCriterion("domain like", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainNotLike(String value) {
            addCriterion("domain not like", value, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainIn(List<String> values) {
            addCriterion("domain in", values, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainNotIn(List<String> values) {
            addCriterion("domain not in", values, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainBetween(String value1, String value2) {
            addCriterion("domain between", value1, value2, "domain");
            return (Criteria) this;
        }

        public Criteria andDomainNotBetween(String value1, String value2) {
            addCriterion("domain not between", value1, value2, "domain");
            return (Criteria) this;
        }

        public Criteria andScriptIsNull() {
            addCriterion("script is null");
            return (Criteria) this;
        }

        public Criteria andScriptIsNotNull() {
            addCriterion("script is not null");
            return (Criteria) this;
        }

        public Criteria andScriptEqualTo(String value) {
            addCriterion("script =", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptNotEqualTo(String value) {
            addCriterion("script <>", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptGreaterThan(String value) {
            addCriterion("script >", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptGreaterThanOrEqualTo(String value) {
            addCriterion("script >=", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptLessThan(String value) {
            addCriterion("script <", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptLessThanOrEqualTo(String value) {
            addCriterion("script <=", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptLike(String value) {
            addCriterion("script like", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptNotLike(String value) {
            addCriterion("script not like", value, "script");
            return (Criteria) this;
        }

        public Criteria andScriptIn(List<String> values) {
            addCriterion("script in", values, "script");
            return (Criteria) this;
        }

        public Criteria andScriptNotIn(List<String> values) {
            addCriterion("script not in", values, "script");
            return (Criteria) this;
        }

        public Criteria andScriptBetween(String value1, String value2) {
            addCriterion("script between", value1, value2, "script");
            return (Criteria) this;
        }

        public Criteria andScriptNotBetween(String value1, String value2) {
            addCriterion("script not between", value1, value2, "script");
            return (Criteria) this;
        }

        public Criteria andStressstatusIsNull() {
            addCriterion("stressstatus is null");
            return (Criteria) this;
        }

        public Criteria andStressstatusIsNotNull() {
            addCriterion("stressstatus is not null");
            return (Criteria) this;
        }

        public Criteria andStressstatusEqualTo(Boolean value) {
            addCriterion("stressstatus =", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusNotEqualTo(Boolean value) {
            addCriterion("stressstatus <>", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusGreaterThan(Boolean value) {
            addCriterion("stressstatus >", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusGreaterThanOrEqualTo(Boolean value) {
            addCriterion("stressstatus >=", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusLessThan(Boolean value) {
            addCriterion("stressstatus <", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusLessThanOrEqualTo(Boolean value) {
            addCriterion("stressstatus <=", value, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusIn(List<Boolean> values) {
            addCriterion("stressstatus in", values, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusNotIn(List<Boolean> values) {
            addCriterion("stressstatus not in", values, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusBetween(Boolean value1, Boolean value2) {
            addCriterion("stressstatus between", value1, value2, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andStressstatusNotBetween(Boolean value1, Boolean value2) {
            addCriterion("stressstatus not between", value1, value2, "stressstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusIsNull() {
            addCriterion("uatstatus is null");
            return (Criteria) this;
        }

        public Criteria andUatstatusIsNotNull() {
            addCriterion("uatstatus is not null");
            return (Criteria) this;
        }

        public Criteria andUatstatusEqualTo(Boolean value) {
            addCriterion("uatstatus =", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusNotEqualTo(Boolean value) {
            addCriterion("uatstatus <>", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusGreaterThan(Boolean value) {
            addCriterion("uatstatus >", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusGreaterThanOrEqualTo(Boolean value) {
            addCriterion("uatstatus >=", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusLessThan(Boolean value) {
            addCriterion("uatstatus <", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusLessThanOrEqualTo(Boolean value) {
            addCriterion("uatstatus <=", value, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusIn(List<Boolean> values) {
            addCriterion("uatstatus in", values, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusNotIn(List<Boolean> values) {
            addCriterion("uatstatus not in", values, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusBetween(Boolean value1, Boolean value2) {
            addCriterion("uatstatus between", value1, value2, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andUatstatusNotBetween(Boolean value1, Boolean value2) {
            addCriterion("uatstatus not between", value1, value2, "uatstatus");
            return (Criteria) this;
        }

        public Criteria andChecktypeIsNull() {
            addCriterion("checktype is null");
            return (Criteria) this;
        }

        public Criteria andChecktypeIsNotNull() {
            addCriterion("checktype is not null");
            return (Criteria) this;
        }

        public Criteria andChecktypeEqualTo(Integer value) {
            addCriterion("checktype =", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeNotEqualTo(Integer value) {
            addCriterion("checktype <>", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeGreaterThan(Integer value) {
            addCriterion("checktype >", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("checktype >=", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeLessThan(Integer value) {
            addCriterion("checktype <", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeLessThanOrEqualTo(Integer value) {
            addCriterion("checktype <=", value, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeIn(List<Integer> values) {
            addCriterion("checktype in", values, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeNotIn(List<Integer> values) {
            addCriterion("checktype not in", values, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeBetween(Integer value1, Integer value2) {
            addCriterion("checktype between", value1, value2, "checktype");
            return (Criteria) this;
        }

        public Criteria andChecktypeNotBetween(Integer value1, Integer value2) {
            addCriterion("checktype not between", value1, value2, "checktype");
            return (Criteria) this;
        }

        public Criteria andCheckvalueIsNull() {
            addCriterion("checkvalue is null");
            return (Criteria) this;
        }

        public Criteria andCheckvalueIsNotNull() {
            addCriterion("checkvalue is not null");
            return (Criteria) this;
        }

        public Criteria andCheckvalueEqualTo(String value) {
            addCriterion("checkvalue =", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueNotEqualTo(String value) {
            addCriterion("checkvalue <>", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueGreaterThan(String value) {
            addCriterion("checkvalue >", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueGreaterThanOrEqualTo(String value) {
            addCriterion("checkvalue >=", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueLessThan(String value) {
            addCriterion("checkvalue <", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueLessThanOrEqualTo(String value) {
            addCriterion("checkvalue <=", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueLike(String value) {
            addCriterion("checkvalue like", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueNotLike(String value) {
            addCriterion("checkvalue not like", value, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueIn(List<String> values) {
            addCriterion("checkvalue in", values, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueNotIn(List<String> values) {
            addCriterion("checkvalue not in", values, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueBetween(String value1, String value2) {
            addCriterion("checkvalue between", value1, value2, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andCheckvalueNotBetween(String value1, String value2) {
            addCriterion("checkvalue not between", value1, value2, "checkvalue");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveIsNull() {
            addCriterion("stressemailactive is null");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveIsNotNull() {
            addCriterion("stressemailactive is not null");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveEqualTo(Boolean value) {
            addCriterion("stressemailactive =", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveNotEqualTo(Boolean value) {
            addCriterion("stressemailactive <>", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveGreaterThan(Boolean value) {
            addCriterion("stressemailactive >", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveGreaterThanOrEqualTo(Boolean value) {
            addCriterion("stressemailactive >=", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveLessThan(Boolean value) {
            addCriterion("stressemailactive <", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveLessThanOrEqualTo(Boolean value) {
            addCriterion("stressemailactive <=", value, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveIn(List<Boolean> values) {
            addCriterion("stressemailactive in", values, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveNotIn(List<Boolean> values) {
            addCriterion("stressemailactive not in", values, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveBetween(Boolean value1, Boolean value2) {
            addCriterion("stressemailactive between", value1, value2, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andStressemailactiveNotBetween(Boolean value1, Boolean value2) {
            addCriterion("stressemailactive not between", value1, value2, "stressemailactive");
            return (Criteria) this;
        }

        public Criteria andEmailsIsNull() {
            addCriterion("emails is null");
            return (Criteria) this;
        }

        public Criteria andEmailsIsNotNull() {
            addCriterion("emails is not null");
            return (Criteria) this;
        }

        public Criteria andEmailsEqualTo(String value) {
            addCriterion("emails =", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotEqualTo(String value) {
            addCriterion("emails <>", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsGreaterThan(String value) {
            addCriterion("emails >", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsGreaterThanOrEqualTo(String value) {
            addCriterion("emails >=", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLessThan(String value) {
            addCriterion("emails <", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLessThanOrEqualTo(String value) {
            addCriterion("emails <=", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLike(String value) {
            addCriterion("emails like", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotLike(String value) {
            addCriterion("emails not like", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsIn(List<String> values) {
            addCriterion("emails in", values, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotIn(List<String> values) {
            addCriterion("emails not in", values, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsBetween(String value1, String value2) {
            addCriterion("emails between", value1, value2, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotBetween(String value1, String value2) {
            addCriterion("emails not between", value1, value2, "emails");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveIsNull() {
            addCriterion("sitemailactive is null");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveIsNotNull() {
            addCriterion("sitemailactive is not null");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveEqualTo(Boolean value) {
            addCriterion("sitemailactive =", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveNotEqualTo(Boolean value) {
            addCriterion("sitemailactive <>", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveGreaterThan(Boolean value) {
            addCriterion("sitemailactive >", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveGreaterThanOrEqualTo(Boolean value) {
            addCriterion("sitemailactive >=", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveLessThan(Boolean value) {
            addCriterion("sitemailactive <", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveLessThanOrEqualTo(Boolean value) {
            addCriterion("sitemailactive <=", value, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveIn(List<Boolean> values) {
            addCriterion("sitemailactive in", values, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveNotIn(List<Boolean> values) {
            addCriterion("sitemailactive not in", values, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveBetween(Boolean value1, Boolean value2) {
            addCriterion("sitemailactive between", value1, value2, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andSitemailactiveNotBetween(Boolean value1, Boolean value2) {
            addCriterion("sitemailactive not between", value1, value2, "sitemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveIsNull() {
            addCriterion("uatemailactive is null");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveIsNotNull() {
            addCriterion("uatemailactive is not null");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveEqualTo(Boolean value) {
            addCriterion("uatemailactive =", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveNotEqualTo(Boolean value) {
            addCriterion("uatemailactive <>", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveGreaterThan(Boolean value) {
            addCriterion("uatemailactive >", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveGreaterThanOrEqualTo(Boolean value) {
            addCriterion("uatemailactive >=", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveLessThan(Boolean value) {
            addCriterion("uatemailactive <", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveLessThanOrEqualTo(Boolean value) {
            addCriterion("uatemailactive <=", value, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveIn(List<Boolean> values) {
            addCriterion("uatemailactive in", values, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveNotIn(List<Boolean> values) {
            addCriterion("uatemailactive not in", values, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveBetween(Boolean value1, Boolean value2) {
            addCriterion("uatemailactive between", value1, value2, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andUatemailactiveNotBetween(Boolean value1, Boolean value2) {
            addCriterion("uatemailactive not between", value1, value2, "uatemailactive");
            return (Criteria) this;
        }

        public Criteria andNodecolIsNull() {
            addCriterion("nodecol is null");
            return (Criteria) this;
        }

        public Criteria andNodecolIsNotNull() {
            addCriterion("nodecol is not null");
            return (Criteria) this;
        }

        public Criteria andNodecolEqualTo(String value) {
            addCriterion("nodecol =", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolNotEqualTo(String value) {
            addCriterion("nodecol <>", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolGreaterThan(String value) {
            addCriterion("nodecol >", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolGreaterThanOrEqualTo(String value) {
            addCriterion("nodecol >=", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolLessThan(String value) {
            addCriterion("nodecol <", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolLessThanOrEqualTo(String value) {
            addCriterion("nodecol <=", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolLike(String value) {
            addCriterion("nodecol like", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolNotLike(String value) {
            addCriterion("nodecol not like", value, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolIn(List<String> values) {
            addCriterion("nodecol in", values, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolNotIn(List<String> values) {
            addCriterion("nodecol not in", values, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolBetween(String value1, String value2) {
            addCriterion("nodecol between", value1, value2, "nodecol");
            return (Criteria) this;
        }

        public Criteria andNodecolNotBetween(String value1, String value2) {
            addCriterion("nodecol not between", value1, value2, "nodecol");
            return (Criteria) this;
        }

        public Criteria andCronIsNull() {
            addCriterion("cron is null");
            return (Criteria) this;
        }

        public Criteria andCronIsNotNull() {
            addCriterion("cron is not null");
            return (Criteria) this;
        }

        public Criteria andCronEqualTo(String value) {
            addCriterion("cron =", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronNotEqualTo(String value) {
            addCriterion("cron <>", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronGreaterThan(String value) {
            addCriterion("cron >", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronGreaterThanOrEqualTo(String value) {
            addCriterion("cron >=", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronLessThan(String value) {
            addCriterion("cron <", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronLessThanOrEqualTo(String value) {
            addCriterion("cron <=", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronLike(String value) {
            addCriterion("cron like", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronNotLike(String value) {
            addCriterion("cron not like", value, "cron");
            return (Criteria) this;
        }

        public Criteria andCronIn(List<String> values) {
            addCriterion("cron in", values, "cron");
            return (Criteria) this;
        }

        public Criteria andCronNotIn(List<String> values) {
            addCriterion("cron not in", values, "cron");
            return (Criteria) this;
        }

        public Criteria andCronBetween(String value1, String value2) {
            addCriterion("cron between", value1, value2, "cron");
            return (Criteria) this;
        }

        public Criteria andCronNotBetween(String value1, String value2) {
            addCriterion("cron not between", value1, value2, "cron");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
NodeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ymatou.envmanagement.infrastructure.mysqldb.mapper.NodeMapper" >
  <resultMap id="BaseResultMap" type="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="url" property="url" jdbcType="VARCHAR" />
    <result column="sitstatus" property="sitstatus" jdbcType="BIT" />
    <result column="time" property="time" jdbcType="VARCHAR" />
    <result column="active" property="active" jdbcType="BIT" />
    <result column="domain" property="domain" jdbcType="VARCHAR" />
    <result column="script" property="script" jdbcType="VARCHAR" />
    <result column="stressstatus" property="stressstatus" jdbcType="BIT" />
    <result column="uatstatus" property="uatstatus" jdbcType="BIT" />
    <result column="checktype" property="checktype" jdbcType="INTEGER" />
    <result column="checkvalue" property="checkvalue" jdbcType="VARCHAR" />
    <result column="stressemailactive" property="stressemailactive" jdbcType="BIT" />
    <result column="emails" property="emails" jdbcType="VARCHAR" />
    <result column="sitemailactive" property="sitemailactive" jdbcType="BIT" />
    <result column="uatemailactive" property="uatemailactive" jdbcType="BIT" />
    <result column="nodecol" property="nodecol" jdbcType="VARCHAR" />
    <result column="cron" property="cron" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Example_Where_Clause" >
    <where >
      <foreach collection="oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  <sql id="Base_Column_List" >
    id, name, url, sitstatus, time, active, domain, script, stressstatus, uatstatus, 
    checktype, checkvalue, stressemailactive, emails, sitemailactive, uatemailactive, 
    nodecol, cron
  </sql>
  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodeExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from node
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from node
    where id = #{id,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from node
    where id = #{id,jdbcType=INTEGER}
  </delete>
  <delete id="deleteByExample" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodeExample" >
    delete from node
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
    insert into node (id, name, url, 
      sitstatus, time, active, domain, 
      script, stressstatus, uatstatus, 
      checktype, checkvalue, stressemailactive, 
      emails, sitemailactive, uatemailactive, 
      nodecol, cron)
    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR}, 
      #{sitstatus,jdbcType=BIT}, #{time,jdbcType=VARCHAR}, #{active,jdbcType=BIT}, #{domain,jdbcType=VARCHAR}, 
      #{script,jdbcType=VARCHAR}, #{stressstatus,jdbcType=BIT}, #{uatstatus,jdbcType=BIT}, 
      #{checktype,jdbcType=INTEGER}, #{checkvalue,jdbcType=VARCHAR}, #{stressemailactive,jdbcType=BIT}, 
      #{emails,jdbcType=VARCHAR}, #{sitemailactive,jdbcType=BIT}, #{uatemailactive,jdbcType=BIT}, 
      #{nodecol,jdbcType=VARCHAR}, #{cron,jdbcType=VARCHAR})
  </insert>
  <insert id="insertSelective" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
    insert into node
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="name != null" >
        name,
      </if>
      <if test="url != null" >
        url,
      </if>
      <if test="sitstatus != null" >
        sitstatus,
      </if>
      <if test="time != null" >
        time,
      </if>
      <if test="active != null" >
        active,
      </if>
      <if test="domain != null" >
        domain,
      </if>
      <if test="script != null" >
        script,
      </if>
      <if test="stressstatus != null" >
        stressstatus,
      </if>
      <if test="uatstatus != null" >
        uatstatus,
      </if>
      <if test="checktype != null" >
        checktype,
      </if>
      <if test="checkvalue != null" >
        checkvalue,
      </if>
      <if test="stressemailactive != null" >
        stressemailactive,
      </if>
      <if test="emails != null" >
        emails,
      </if>
      <if test="sitemailactive != null" >
        sitemailactive,
      </if>
      <if test="uatemailactive != null" >
        uatemailactive,
      </if>
      <if test="nodecol != null" >
        nodecol,
      </if>
      <if test="cron != null" >
        cron,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="name != null" >
        #{name,jdbcType=VARCHAR},
      </if>
      <if test="url != null" >
        #{url,jdbcType=VARCHAR},
      </if>
      <if test="sitstatus != null" >
        #{sitstatus,jdbcType=BIT},
      </if>
      <if test="time != null" >
        #{time,jdbcType=VARCHAR},
      </if>
      <if test="active != null" >
        #{active,jdbcType=BIT},
      </if>
      <if test="domain != null" >
        #{domain,jdbcType=VARCHAR},
      </if>
      <if test="script != null" >
        #{script,jdbcType=VARCHAR},
      </if>
      <if test="stressstatus != null" >
        #{stressstatus,jdbcType=BIT},
      </if>
      <if test="uatstatus != null" >
        #{uatstatus,jdbcType=BIT},
      </if>
      <if test="checktype != null" >
        #{checktype,jdbcType=INTEGER},
      </if>
      <if test="checkvalue != null" >
        #{checkvalue,jdbcType=VARCHAR},
      </if>
      <if test="stressemailactive != null" >
        #{stressemailactive,jdbcType=BIT},
      </if>
      <if test="emails != null" >
        #{emails,jdbcType=VARCHAR},
      </if>
      <if test="sitemailactive != null" >
        #{sitemailactive,jdbcType=BIT},
      </if>
      <if test="uatemailactive != null" >
        #{uatemailactive,jdbcType=BIT},
      </if>
      <if test="nodecol != null" >
        #{nodecol,jdbcType=VARCHAR},
      </if>
      <if test="cron != null" >
        #{cron,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <select id="countByExample" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodeExample" resultType="java.lang.Integer" >
    select count(*) from node
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
  </select>
  <update id="updateByExampleSelective" parameterType="map" >
    update node
    <set >
      <if test="record.id != null" >
        id = #{record.id,jdbcType=INTEGER},
      </if>
      <if test="record.name != null" >
        name = #{record.name,jdbcType=VARCHAR},
      </if>
      <if test="record.url != null" >
        url = #{record.url,jdbcType=VARCHAR},
      </if>
      <if test="record.sitstatus != null" >
        sitstatus = #{record.sitstatus,jdbcType=BIT},
      </if>
      <if test="record.time != null" >
        time = #{record.time,jdbcType=VARCHAR},
      </if>
      <if test="record.active != null" >
        active = #{record.active,jdbcType=BIT},
      </if>
      <if test="record.domain != null" >
        domain = #{record.domain,jdbcType=VARCHAR},
      </if>
      <if test="record.script != null" >
        script = #{record.script,jdbcType=VARCHAR},
      </if>
      <if test="record.stressstatus != null" >
        stressstatus = #{record.stressstatus,jdbcType=BIT},
      </if>
      <if test="record.uatstatus != null" >
        uatstatus = #{record.uatstatus,jdbcType=BIT},
      </if>
      <if test="record.checktype != null" >
        checktype = #{record.checktype,jdbcType=INTEGER},
      </if>
      <if test="record.checkvalue != null" >
        checkvalue = #{record.checkvalue,jdbcType=VARCHAR},
      </if>
      <if test="record.stressemailactive != null" >
        stressemailactive = #{record.stressemailactive,jdbcType=BIT},
      </if>
      <if test="record.emails != null" >
        emails = #{record.emails,jdbcType=VARCHAR},
      </if>
      <if test="record.sitemailactive != null" >
        sitemailactive = #{record.sitemailactive,jdbcType=BIT},
      </if>
      <if test="record.uatemailactive != null" >
        uatemailactive = #{record.uatemailactive,jdbcType=BIT},
      </if>
      <if test="record.nodecol != null" >
        nodecol = #{record.nodecol,jdbcType=VARCHAR},
      </if>
      <if test="record.cron != null" >
        cron = #{record.cron,jdbcType=VARCHAR},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByExample" parameterType="map" >
    update node
    set id = #{record.id,jdbcType=INTEGER},
      name = #{record.name,jdbcType=VARCHAR},
      url = #{record.url,jdbcType=VARCHAR},
      sitstatus = #{record.sitstatus,jdbcType=BIT},
      time = #{record.time,jdbcType=VARCHAR},
      active = #{record.active,jdbcType=BIT},
      domain = #{record.domain,jdbcType=VARCHAR},
      script = #{record.script,jdbcType=VARCHAR},
      stressstatus = #{record.stressstatus,jdbcType=BIT},
      uatstatus = #{record.uatstatus,jdbcType=BIT},
      checktype = #{record.checktype,jdbcType=INTEGER},
      checkvalue = #{record.checkvalue,jdbcType=VARCHAR},
      stressemailactive = #{record.stressemailactive,jdbcType=BIT},
      emails = #{record.emails,jdbcType=VARCHAR},
      sitemailactive = #{record.sitemailactive,jdbcType=BIT},
      uatemailactive = #{record.uatemailactive,jdbcType=BIT},
      nodecol = #{record.nodecol,jdbcType=VARCHAR},
      cron = #{record.cron,jdbcType=VARCHAR}
    <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
    update node
    <set >
      <if test="name != null" >
        name = #{name,jdbcType=VARCHAR},
      </if>
      <if test="url != null" >
        url = #{url,jdbcType=VARCHAR},
      </if>
      <if test="sitstatus != null" >
        sitstatus = #{sitstatus,jdbcType=BIT},
      </if>
      <if test="time != null" >
        time = #{time,jdbcType=VARCHAR},
      </if>
      <if test="active != null" >
        active = #{active,jdbcType=BIT},
      </if>
      <if test="domain != null" >
        domain = #{domain,jdbcType=VARCHAR},
      </if>
      <if test="script != null" >
        script = #{script,jdbcType=VARCHAR},
      </if>
      <if test="stressstatus != null" >
        stressstatus = #{stressstatus,jdbcType=BIT},
      </if>
      <if test="uatstatus != null" >
        uatstatus = #{uatstatus,jdbcType=BIT},
      </if>
      <if test="checktype != null" >
        checktype = #{checktype,jdbcType=INTEGER},
      </if>
      <if test="checkvalue != null" >
        checkvalue = #{checkvalue,jdbcType=VARCHAR},
      </if>
      <if test="stressemailactive != null" >
        stressemailactive = #{stressemailactive,jdbcType=BIT},
      </if>
      <if test="emails != null" >
        emails = #{emails,jdbcType=VARCHAR},
      </if>
      <if test="sitemailactive != null" >
        sitemailactive = #{sitemailactive,jdbcType=BIT},
      </if>
      <if test="uatemailactive != null" >
        uatemailactive = #{uatemailactive,jdbcType=BIT},
      </if>
      <if test="nodecol != null" >
        nodecol = #{nodecol,jdbcType=VARCHAR},
      </if>
      <if test="cron != null" >
        cron = #{cron,jdbcType=VARCHAR},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
    update node
    set name = #{name,jdbcType=VARCHAR},
      url = #{url,jdbcType=VARCHAR},
      sitstatus = #{sitstatus,jdbcType=BIT},
      time = #{time,jdbcType=VARCHAR},
      active = #{active,jdbcType=BIT},
      domain = #{domain,jdbcType=VARCHAR},
      script = #{script,jdbcType=VARCHAR},
      stressstatus = #{stressstatus,jdbcType=BIT},
      uatstatus = #{uatstatus,jdbcType=BIT},
      checktype = #{checktype,jdbcType=INTEGER},
      checkvalue = #{checkvalue,jdbcType=VARCHAR},
      stressemailactive = #{stressemailactive,jdbcType=BIT},
      emails = #{emails,jdbcType=VARCHAR},
      sitemailactive = #{sitemailactive,jdbcType=BIT},
      uatemailactive = #{uatemailactive,jdbcType=BIT},
      nodecol = #{nodecol,jdbcType=VARCHAR},
      cron = #{cron,jdbcType=VARCHAR}
    where id = #{id,jdbcType=INTEGER}
  </update>
</mapper>


以上是生成的代碼,一下是自定義的代碼
import com.ymatou.envmanagement.infrastructure.mysqldb.model.NodeExample;
import com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by chenjiazhu on 2017/7/5.
 */
public interface NodeQuery {

    List<NodePo> selectByPageAndSize(@Param("skip") int skip,@Param("size") int size);
    List<NodePo> selectByCriteriaAndPageAndSize(@Param("name") String name,@Param("domain") String domain, @Param("stressstatus") Boolean stressstatus,@Param("sitstatus") Boolean sitstatus,@Param("uatstatus") Boolean uatstatus, @Param("active") Boolean active,@Param("skip") int skip,@Param("size") int size);
    int getSizeByCriteria(@Param("name") String name,@Param("domain") String domain, @Param("stressstatus") Boolean stressstatus,@Param("sitstatus") Boolean sitstatus,@Param("uatstatus") Boolean uatstatus, @Param("active") Boolean active);
}
NodeQuery.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!--
  ~ /*
  ~  (C) Copyright 2016 Ymatou (http://www.ymatou.com/).
  ~  All rights reserved.
  ~  */
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ymatou.envmanagement.infrastructure.mysqldb.query.NodeQuery" >

    <select id="selectByPageAndSize"  resultType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
        SELECT * FROM node ORDER BY id ASC LIMIT #{skip},#{size}
    </select>

    <select id="selectByCriteriaAndPageAndSize"  resultType="com.ymatou.envmanagement.infrastructure.mysqldb.model.NodePo" >
        SELECT * FROM node
        where 1=1
        <if test="name != null" >
            and name like CONCAT('%','${name}','%' )
        </if>

        <if test="domain != null" >
            and domain like CONCAT('%','${domain}','%' )
        </if>

        <if test="stressstatus != null" >
            and stressstatus=#{stressstatus,jdbcType=BIT}
        </if>

        <if test="sitstatus != null" >
            and sitstatus=#{sitstatus,jdbcType=BIT}
        </if>

        <if test="uatstatus != null" >
            and uatstatus=#{uatstatus,jdbcType=BIT}
        </if>

        <if test="active != null" >
            and active=#{active,jdbcType=BIT}
        </if>
        ORDER BY id ASC LIMIT #{skip},#{size}
    </select>

    <select id="getSizeByCriteria"  resultType="Integer" >
        SELECT count(1) FROM node
        where 1=1
        <if test="name != null" >
            and name=#{name}
        </if>

        <if test="domain != null" >
            and domain=#{domain}
        </if>

        <if test="stressstatus != null" >
            and stressstatus=#{stressstatus,jdbcType=BIT}
        </if>

        <if test="sitstatus != null" >
            and sitstatus=#{sitstatus,jdbcType=BIT}
        </if>

        <if test="uatstatus != null" >
            and uatstatus=#{uatstatus,jdbcType=BIT}
        </if>

        <if test="active != null" >
            and active=#{active,jdbcType=BIT}
        </if>
    </select>

</mapper>

指定數據源

由於Spring方式下所有calss都託管給Spring了,多數據庫情況下就需要指定數據源,示例如下:

發佈了32 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章