diff --git a/README.md b/README.md
index 74c5ab0..f54b3f9 100644
--- a/README.md
+++ b/README.md
@@ -42,6 +42,7 @@
[13、SpringBoot2 整合 ClickHouse数据库,实现数据高性能查询分析](https://mp.weixin.qq.com/s?__biz=MzU4Njg0MzYwNw==&mid=2247484121&idx=1&sn=29cc633facbbb2c69afa4e6472fb93e8&chksm=fdf45661ca83df77879cbea0e0e3b445a5972a9fc0f84ae25c6882e60e4bed3dc2a68338fa2a&token=1150397377&lang=zh_CN#rd)
[14、SpringBoot2 整合 Drools规则引擎,实现高效的业务规则](https://mp.weixin.qq.com/s?__biz=MzU4Njg0MzYwNw==&mid=2247484126&idx=1&sn=480ca951cb6a4da92f7e153ecc6f5161&chksm=fdf45666ca83df70d4cd84be8712e15b192ee0ec4a9aed9c537e13d23bf534afaa7c1712f5b3&token=1150397377&lang=zh_CN#rd)
+[15、SpringBoot2 配置多数据源,整合MybatisPlus增强插件](https://mp.weixin.qq.com/s?__biz=MzU4Njg0MzYwNw==&mid=2247484131&idx=1&sn=f96cc6dc29ed8c2f5823183775726733&chksm=fdf4565bca83df4dd23fa2672303c331ded0fab9534e8ae2d529cd61262dcce399d2b0642f8e&token=1909713327&lang=zh_CN#rd)
持续更新中...
diff --git a/ware-plus-batis/pom.xml b/ware-plus-batis/pom.xml
new file mode 100644
index 0000000..405d383
--- /dev/null
+++ b/ware-plus-batis/pom.xml
@@ -0,0 +1,97 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starters
+ 2.1.3.RELEASE
+
+ 4.0.0
+ com.plus.batis
+ ware-plus-batis
+ jar
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 1.3.2
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.0.7.1
+
+
+ com.baomidou
+ mybatis-plus-generator
+
+
+
+
+ com.baomidou
+ mybatis-plus
+ 3.0.7.1
+
+
+ mysql
+ mysql-connector-java
+ 5.1.38
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.13
+
+
+ com.alibaba
+ druid
+ 1.1.10
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.2.3
+
+
+
+
+ ${project.artifactId}
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+
+ 1.8
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/Application7014.java b/ware-plus-batis/src/main/java/com/plus/batis/Application7014.java
new file mode 100644
index 0000000..ec734a8
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/Application7014.java
@@ -0,0 +1,13 @@
+package com.plus.batis;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@MapperScan(basePackages = {"com.plus.batis.mapper"})
+public class Application7014 {
+ public static void main(String[] args) {
+ SpringApplication.run(Application7014.class,args) ;
+ }
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/config/DruidConfig.java b/ware-plus-batis/src/main/java/com/plus/batis/config/DruidConfig.java
new file mode 100644
index 0000000..9dfdff8
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/config/DruidConfig.java
@@ -0,0 +1,108 @@
+package com.plus.batis.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.support.http.StatViewServlet;
+import com.alibaba.druid.support.http.WebStatFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+@Configuration
+public class DruidConfig {
+ private static final Logger logger = LoggerFactory.getLogger(DruidConfig.class);
+ @Value("${spring.datasource.druid.url}")
+ private String dbUrl;
+ @Value("${spring.datasource.druid.username}")
+ private String username;
+ @Value("${spring.datasource.druid.password}")
+ private String password;
+ @Value("${spring.datasource.druid.driverClassName}")
+ private String driverClassName;
+ @Value("${spring.datasource.druid.initial-size}")
+ private int initialSize;
+ @Value("${spring.datasource.druid.max-active}")
+ private int maxActive;
+ @Value("${spring.datasource.druid.min-idle}")
+ private int minIdle;
+ @Value("${spring.datasource.druid.max-wait}")
+ private int maxWait;
+ @Value("${spring.datasource.druid.pool-prepared-statements}")
+ private boolean poolPreparedStatements;
+ @Value("${spring.datasource.druid.max-pool-prepared-statement-per-connection-size}")
+ private int maxPoolPreparedStatementPerConnectionSize;
+ @Value("${spring.datasource.druid.time-between-eviction-runs-millis}")
+ private int timeBetweenEvictionRunsMillis;
+ @Value("${spring.datasource.druid.min-evictable-idle-time-millis}")
+ private int minEvictableIdleTimeMillis;
+ @Value("${spring.datasource.druid.max-evictable-idle-time-millis}")
+ private int maxEvictableIdleTimeMillis;
+ @Value("${spring.datasource.druid.validation-query}")
+ private String validationQuery;
+ @Value("${spring.datasource.druid.test-while-idle}")
+ private boolean testWhileIdle;
+ @Value("${spring.datasource.druid.test-on-borrow}")
+ private boolean testOnBorrow;
+ @Value("${spring.datasource.druid.test-on-return}")
+ private boolean testOnReturn;
+ @Value("${spring.datasource.druid.filters}")
+ private String filters;
+ @Value("{spring.datasource.druid.connection-properties}")
+ private String connectionProperties;
+ @Bean
+ public DataSource dataSource() {
+ DruidDataSource datasource = new DruidDataSource();
+ datasource.setUrl(dbUrl);
+ datasource.setUsername(username);
+ datasource.setPassword(password);
+ datasource.setDriverClassName(driverClassName);
+ datasource.setInitialSize(initialSize);
+ datasource.setMinIdle(minIdle);
+ datasource.setMaxActive(maxActive);
+ datasource.setMaxWait(maxWait);
+ datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+ datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+ datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+ datasource.setValidationQuery(validationQuery);
+ datasource.setTestWhileIdle(testWhileIdle);
+ datasource.setTestOnBorrow(testOnBorrow);
+ datasource.setTestOnReturn(testOnReturn);
+ datasource.setPoolPreparedStatements(poolPreparedStatements);
+ datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
+ try {
+ datasource.setFilters(filters);
+ } catch (Exception e) {
+ logger.error("druid configuration initialization filter", e);
+ }
+ datasource.setConnectionProperties(connectionProperties);
+ return datasource;
+ }
+ @Bean
+ public ServletRegistrationBean statViewServlet(){
+ ServletRegistrationBean srb =
+ new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
+ //设置控制台管理用户
+ srb.addInitParameter("loginUsername","root");
+ srb.addInitParameter("loginPassword","root");
+ //是否可以重置数据
+ srb.addInitParameter("resetEnable","false");
+ return srb;
+ }
+ @Bean
+ public FilterRegistrationBean statFilter(){
+ //创建过滤器
+ FilterRegistrationBean frb =
+ new FilterRegistrationBean(new WebStatFilter());
+ //设置过滤器过滤路径
+ frb.addUrlPatterns("/*");
+ //忽略过滤的形式
+ frb.addInitParameter("exclusions",
+ "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
+ return frb;
+ }
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/controller/UserBaseController.java b/ware-plus-batis/src/main/java/com/plus/batis/controller/UserBaseController.java
new file mode 100644
index 0000000..8cad66d
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/controller/UserBaseController.java
@@ -0,0 +1,73 @@
+package com.plus.batis.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.pagehelper.PageInfo;
+import com.plus.batis.entity.QueryParam;
+import com.plus.batis.entity.UserBase;
+import com.plus.batis.service.UserBaseService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/user")
+public class UserBaseController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(UserBaseController.class) ;
+
+ @Resource
+ private UserBaseService userBaseService ;
+
+ @RequestMapping("/info")
+ public UserBase getUserBase (){
+ return userBaseService.getById(1) ;
+ }
+
+ @RequestMapping("/queryInfo")
+ public String queryInfo (){
+
+ UserBase userBase1 = userBaseService.getOne(new QueryWrapper().orderByDesc("create_time")) ;
+ LOGGER.info("倒叙取值:{}",userBase1.getUserName());
+
+ Integer count = userBaseService.count() ;
+ LOGGER.info("查询总数:{}",count);
+
+ UserBase userBase2 = new UserBase() ;
+ userBase2.setId(1);
+ userBase2.setUserName("spring");
+ boolean resFlag = userBaseService.saveOrUpdate(userBase2) ;
+ LOGGER.info("保存更新:{}",resFlag);
+
+ Map listByMap = new HashMap<>() ;
+ listByMap.put("state","0") ;
+ Collection listMap = userBaseService.listByMap(listByMap) ;
+ LOGGER.info("ListByMap查询:{}",listMap);
+
+ boolean removeFlag = userBaseService.removeById(3) ;
+ LOGGER.info("删除数据:{}",removeFlag);
+
+ return "success" ;
+ }
+
+ @RequestMapping("/queryPage")
+ public IPage queryPage (){
+ QueryParam param = new QueryParam() ;
+ param.setPage(1);
+ param.setPageSize(10);
+ param.setUserName("cicada");
+ param.setState(0);
+ return userBaseService.queryPage(param) ;
+ }
+
+ @RequestMapping("/pageHelper")
+ public PageInfo pageHelper (){
+ return userBaseService.pageHelper(new QueryParam()) ;
+ }
+
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/entity/BaseParam.java b/ware-plus-batis/src/main/java/com/plus/batis/entity/BaseParam.java
new file mode 100644
index 0000000..bced1e1
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/entity/BaseParam.java
@@ -0,0 +1,22 @@
+package com.plus.batis.entity;
+
+public class BaseParam {
+ private long page ;
+ private long pageSize ;
+
+ public long getPage() {
+ return page;
+ }
+
+ public void setPage(long page) {
+ this.page = page;
+ }
+
+ public long getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(long pageSize) {
+ this.pageSize = pageSize;
+ }
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/entity/QueryParam.java b/ware-plus-batis/src/main/java/com/plus/batis/entity/QueryParam.java
new file mode 100644
index 0000000..666b926
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/entity/QueryParam.java
@@ -0,0 +1,18 @@
+package com.plus.batis.entity;
+
+public class QueryParam extends BaseParam {
+ private String userName ;
+ private Integer state ;
+ public String getUserName() {
+ return userName;
+ }
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+ public Integer getState() {
+ return state;
+ }
+ public void setState(Integer state) {
+ this.state = state;
+ }
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBase.java b/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBase.java
new file mode 100644
index 0000000..84d4a35
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBase.java
@@ -0,0 +1,91 @@
+package com.plus.batis.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.util.Date;
+
+@TableName("hc_user_base")
+public class UserBase {
+
+ @TableId
+ private Integer id;
+
+ private String userName;
+
+ private String passWord;
+
+ private String phone;
+
+ private String email;
+
+ private Date createTime;
+
+ private Date updateTime;
+
+ private Integer state;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName == null ? null : userName.trim();
+ }
+
+ public String getPassWord() {
+ return passWord;
+ }
+
+ public void setPassWord(String passWord) {
+ this.passWord = passWord == null ? null : passWord.trim();
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone == null ? null : phone.trim();
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email == null ? null : email.trim();
+ }
+
+ public Date getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(Date createTime) {
+ this.createTime = createTime;
+ }
+
+ public Date getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(Date updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+}
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBaseExample.java b/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBaseExample.java
new file mode 100644
index 0000000..f9cf4ac
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/entity/UserBaseExample.java
@@ -0,0 +1,721 @@
+package com.plus.batis.entity;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class UserBaseExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public UserBaseExample() {
+ oredCriteria = new ArrayList();
+ }
+
+ 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 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 criteria;
+
+ protected GeneratedCriteria() {
+ super();
+ criteria = new ArrayList();
+ }
+
+ public boolean isValid() {
+ return criteria.size() > 0;
+ }
+
+ public List getAllCriteria() {
+ return criteria;
+ }
+
+ public List 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 values) {
+ addCriterion("id in", values, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotIn(List 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 andUserNameIsNull() {
+ addCriterion("user_name is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameIsNotNull() {
+ addCriterion("user_name is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameEqualTo(String value) {
+ addCriterion("user_name =", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameNotEqualTo(String value) {
+ addCriterion("user_name <>", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameGreaterThan(String value) {
+ addCriterion("user_name >", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameGreaterThanOrEqualTo(String value) {
+ addCriterion("user_name >=", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameLessThan(String value) {
+ addCriterion("user_name <", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameLessThanOrEqualTo(String value) {
+ addCriterion("user_name <=", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameLike(String value) {
+ addCriterion("user_name like", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameNotLike(String value) {
+ addCriterion("user_name not like", value, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameIn(List values) {
+ addCriterion("user_name in", values, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameNotIn(List values) {
+ addCriterion("user_name not in", values, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameBetween(String value1, String value2) {
+ addCriterion("user_name between", value1, value2, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserNameNotBetween(String value1, String value2) {
+ addCriterion("user_name not between", value1, value2, "userName");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordIsNull() {
+ addCriterion("pass_word is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordIsNotNull() {
+ addCriterion("pass_word is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordEqualTo(String value) {
+ addCriterion("pass_word =", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordNotEqualTo(String value) {
+ addCriterion("pass_word <>", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordGreaterThan(String value) {
+ addCriterion("pass_word >", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordGreaterThanOrEqualTo(String value) {
+ addCriterion("pass_word >=", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordLessThan(String value) {
+ addCriterion("pass_word <", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordLessThanOrEqualTo(String value) {
+ addCriterion("pass_word <=", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordLike(String value) {
+ addCriterion("pass_word like", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordNotLike(String value) {
+ addCriterion("pass_word not like", value, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordIn(List values) {
+ addCriterion("pass_word in", values, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordNotIn(List values) {
+ addCriterion("pass_word not in", values, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordBetween(String value1, String value2) {
+ addCriterion("pass_word between", value1, value2, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassWordNotBetween(String value1, String value2) {
+ addCriterion("pass_word not between", value1, value2, "passWord");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneIsNull() {
+ addCriterion("phone is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneIsNotNull() {
+ addCriterion("phone is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneEqualTo(String value) {
+ addCriterion("phone =", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneNotEqualTo(String value) {
+ addCriterion("phone <>", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneGreaterThan(String value) {
+ addCriterion("phone >", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneGreaterThanOrEqualTo(String value) {
+ addCriterion("phone >=", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneLessThan(String value) {
+ addCriterion("phone <", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneLessThanOrEqualTo(String value) {
+ addCriterion("phone <=", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneLike(String value) {
+ addCriterion("phone like", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneNotLike(String value) {
+ addCriterion("phone not like", value, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneIn(List values) {
+ addCriterion("phone in", values, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneNotIn(List values) {
+ addCriterion("phone not in", values, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneBetween(String value1, String value2) {
+ addCriterion("phone between", value1, value2, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andPhoneNotBetween(String value1, String value2) {
+ addCriterion("phone not between", value1, value2, "phone");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailIsNull() {
+ addCriterion("email is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailIsNotNull() {
+ addCriterion("email is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailEqualTo(String value) {
+ addCriterion("email =", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailNotEqualTo(String value) {
+ addCriterion("email <>", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailGreaterThan(String value) {
+ addCriterion("email >", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailGreaterThanOrEqualTo(String value) {
+ addCriterion("email >=", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailLessThan(String value) {
+ addCriterion("email <", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailLessThanOrEqualTo(String value) {
+ addCriterion("email <=", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailLike(String value) {
+ addCriterion("email like", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailNotLike(String value) {
+ addCriterion("email not like", value, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailIn(List values) {
+ addCriterion("email in", values, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailNotIn(List values) {
+ addCriterion("email not in", values, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailBetween(String value1, String value2) {
+ addCriterion("email between", value1, value2, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andEmailNotBetween(String value1, String value2) {
+ addCriterion("email not between", value1, value2, "email");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNull() {
+ addCriterion("create_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIsNotNull() {
+ addCriterion("create_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeEqualTo(Date value) {
+ addCriterion("create_time =", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotEqualTo(Date value) {
+ addCriterion("create_time <>", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThan(Date value) {
+ addCriterion("create_time >", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("create_time >=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThan(Date value) {
+ addCriterion("create_time <", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("create_time <=", value, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeIn(List values) {
+ addCriterion("create_time in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotIn(List values) {
+ addCriterion("create_time not in", values, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeBetween(Date value1, Date value2) {
+ addCriterion("create_time between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("create_time not between", value1, value2, "createTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNull() {
+ addCriterion("update_time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIsNotNull() {
+ addCriterion("update_time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeEqualTo(Date value) {
+ addCriterion("update_time =", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotEqualTo(Date value) {
+ addCriterion("update_time <>", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThan(Date value) {
+ addCriterion("update_time >", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+ addCriterion("update_time >=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThan(Date value) {
+ addCriterion("update_time <", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+ addCriterion("update_time <=", value, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeIn(List values) {
+ addCriterion("update_time in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotIn(List values) {
+ addCriterion("update_time not in", values, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+ addCriterion("update_time between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+ addCriterion("update_time not between", value1, value2, "updateTime");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateIsNull() {
+ addCriterion("state is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateIsNotNull() {
+ addCriterion("state is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateEqualTo(Integer value) {
+ addCriterion("state =", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateNotEqualTo(Integer value) {
+ addCriterion("state <>", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateGreaterThan(Integer value) {
+ addCriterion("state >", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateGreaterThanOrEqualTo(Integer value) {
+ addCriterion("state >=", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateLessThan(Integer value) {
+ addCriterion("state <", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateLessThanOrEqualTo(Integer value) {
+ addCriterion("state <=", value, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateIn(List values) {
+ addCriterion("state in", values, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateNotIn(List values) {
+ addCriterion("state not in", values, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateBetween(Integer value1, Integer value2) {
+ addCriterion("state between", value1, value2, "state");
+ return (Criteria) this;
+ }
+
+ public Criteria andStateNotBetween(Integer value1, Integer value2) {
+ addCriterion("state not between", value1, value2, "state");
+ 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);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/mapper/UserBaseMapper.java b/ware-plus-batis/src/main/java/com/plus/batis/mapper/UserBaseMapper.java
new file mode 100644
index 0000000..09acba8
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/mapper/UserBaseMapper.java
@@ -0,0 +1,12 @@
+package com.plus.batis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.plus.batis.entity.QueryParam;
+import com.plus.batis.entity.UserBase;
+import java.util.List;
+
+public interface UserBaseMapper extends BaseMapper {
+
+ List selectByParam (QueryParam param) ;
+
+}
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/service/UserBaseService.java b/ware-plus-batis/src/main/java/com/plus/batis/service/UserBaseService.java
new file mode 100644
index 0000000..9352f43
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/service/UserBaseService.java
@@ -0,0 +1,13 @@
+package com.plus.batis.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.pagehelper.PageInfo;
+import com.plus.batis.entity.QueryParam;
+import com.plus.batis.entity.UserBase;
+
+public interface UserBaseService extends IService {
+ IPage queryPage(QueryParam param) ;
+
+ PageInfo pageHelper (QueryParam param) ;
+}
diff --git a/ware-plus-batis/src/main/java/com/plus/batis/service/impl/UserBaseServiceImpl.java b/ware-plus-batis/src/main/java/com/plus/batis/service/impl/UserBaseServiceImpl.java
new file mode 100644
index 0000000..2c2af99
--- /dev/null
+++ b/ware-plus-batis/src/main/java/com/plus/batis/service/impl/UserBaseServiceImpl.java
@@ -0,0 +1,45 @@
+package com.plus.batis.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.plus.batis.entity.QueryParam;
+import com.plus.batis.entity.UserBase;
+import com.plus.batis.mapper.UserBaseMapper;
+import com.plus.batis.service.UserBaseService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class UserBaseServiceImpl extends ServiceImpl implements UserBaseService {
+
+ @Resource
+ private UserBaseMapper userBaseMapper ;
+
+ @Override
+ public IPage queryPage(QueryParam param) {
+
+ IPage pageData = this.page(
+ new Page<>(param.getPage(),param.getPageSize()),
+ new QueryWrapper()
+ .like(StringUtils.isNotBlank(param.getUserName()),"user_name", param.getUserName())
+ .eq(param.getState() != null,"state",param.getState())
+ );
+
+ return pageData ;
+ }
+
+ @Override
+ public PageInfo pageHelper(QueryParam param) {
+ PageHelper.startPage(1,2) ;
+ List userBaseList = userBaseMapper.selectByParam(param) ;
+ PageInfo pageInfo = new PageInfo<>(userBaseList) ;
+ return pageInfo ;
+ }
+}
diff --git a/ware-plus-batis/src/main/resources/application-dev.yml b/ware-plus-batis/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..5e1190d
--- /dev/null
+++ b/ware-plus-batis/src/main/resources/application-dev.yml
@@ -0,0 +1,29 @@
+spring:
+ # 数据源配置
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ druid:
+ driverClassName: com.mysql.jdbc.Driver
+ url: jdbc:mysql://127.0.0.1:3306/cloud-user-data?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=false
+ username: root
+ password: 123
+ initial-size: 10
+ max-active: 100
+ min-idle: 10
+ max-wait: 60000
+ pool-prepared-statements: true
+ max-pool-prepared-statement-per-connection-size: 20
+ time-between-eviction-runs-millis: 60000
+ min-evictable-idle-time-millis: 30000
+ max-evictable-idle-time-millis: 60000
+ validation-query: SELECT 1 FROM DUAL
+ # validation-query-timeout: 5000
+ test-on-borrow: false
+ test-on-return: false
+ test-while-idle: true
+ connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+ #filters: #配置多个英文逗号分隔(统计,sql注入,log4j过滤)
+ filters: stat,wall
+ stat-view-servlet:
+ enabled: true
+ url-pattern: /druid/*
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/resources/application.yml b/ware-plus-batis/src/main/resources/application.yml
new file mode 100644
index 0000000..e7e1497
--- /dev/null
+++ b/ware-plus-batis/src/main/resources/application.yml
@@ -0,0 +1,31 @@
+server:
+ tomcat:
+ uri-encoding: UTF-8
+ port: 7014
+spring:
+ profiles:
+ active: dev
+ application:
+ name: ware-source-data
+ http:
+ encoding:
+ charset: UTF-8
+ force: true
+ enabled: true
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/*.xml
+ typeAliasesPackage: com.digital.market.*.entity
+ global-config:
+ db-config:
+ id-type: AUTO
+ field-strategy: NOT_NULL
+ logic-delete-value: -1
+ logic-not-delete-value: 0
+ banner: false
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ map-underscore-to-camel-case: true
+ cache-enabled: false
+ call-setters-on-nulls: true
+ jdbc-type-for-null: 'null'
\ No newline at end of file
diff --git a/ware-plus-batis/src/main/resources/mapper/UserBaseMapper.xml b/ware-plus-batis/src/main/resources/mapper/UserBaseMapper.xml
new file mode 100644
index 0000000..04feb0c
--- /dev/null
+++ b/ware-plus-batis/src/main/resources/mapper/UserBaseMapper.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, user_name, pass_word, phone, email, create_time, update_time, state
+
+
+
+
+
\ No newline at end of file