批量删除,更新
1,批量删除1.1,controller1.2,serviceImpl,service1.3,PmsBrandExample1.4,dao层xml,dao层
2,批量更新 (显示状态show_status)2.1,controller2.2,serviceImpl,service2.3,dao,dao.xml
3、最简易的批量软删除写法(测试用)
1,批量删除
1.1,controller
@ApiOperation(value = "批量删除品牌")
@RequestMapping(value = "/delete/batch", method = RequestMethod.POST)
@ResponseBody
public CommonResult deleteBatch(@RequestParam("ids") List<Long> ids) {
int count = brandService.deleteBrand(ids);
if (count > 0) {
return CommonResult.success(count);
} else {
return CommonResult.failed();
}
}
1.2,serviceImpl,service
service传参ids,通过Example对象的.createCriteria().andIdIn(ids)方法进行批量处理,然后正常返回dao层deleteByExample方法
@Override
public int deleteBrand(List<Long> ids) {
PmsBrandExample pmsBrandExample = new PmsBrandExample();
pmsBrandExample.createCriteria().andIdIn(ids);
return brandMapper.deleteByExample(pmsBrandExample);
}
/**
* 批量删除品牌
*/
int deleteBrand(List<Long> ids);
1.3,PmsBrandExample
package com.macro.mall.model;
import java.util.ArrayList;
import java.util.List;
public class PmsBrandExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public PmsBrandExample() {
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<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<>();
}
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(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long 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 andFirstLetterIsNull() {
addCriterion("first_letter is null");
return (Criteria) this;
}
public Criteria andFirstLetterIsNotNull() {
addCriterion("first_letter is not null");
return (Criteria) this;
}
public Criteria andFirstLetterEqualTo(String value) {
addCriterion("first_letter =", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterNotEqualTo(String value) {
addCriterion("first_letter <>", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterGreaterThan(String value) {
addCriterion("first_letter >", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterGreaterThanOrEqualTo(String value) {
addCriterion("first_letter >=", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterLessThan(String value) {
addCriterion("first_letter <", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterLessThanOrEqualTo(String value) {
addCriterion("first_letter <=", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterLike(String value) {
addCriterion("first_letter like", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterNotLike(String value) {
addCriterion("first_letter not like", value, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterIn(List<String> values) {
addCriterion("first_letter in", values, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterNotIn(List<String> values) {
addCriterion("first_letter not in", values, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterBetween(String value1, String value2) {
addCriterion("first_letter between", value1, value2, "firstLetter");
return (Criteria) this;
}
public Criteria andFirstLetterNotBetween(String value1, String value2) {
addCriterion("first_letter not between", value1, value2, "firstLetter");
return (Criteria) this;
}
public Criteria andSortIsNull() {
addCriterion("sort is null");
return (Criteria) this;
}
public Criteria andSortIsNotNull() {
addCriterion("sort is not null");
return (Criteria) this;
}
public Criteria andSortEqualTo(Integer value) {
addCriterion("sort =", value, "sort");
return (Criteria) this;
}
public Criteria andSortNotEqualTo(Integer value) {
addCriterion("sort <>", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThan(Integer value) {
addCriterion("sort >", value, "sort");
return (Criteria) this;
}
public Criteria andSortGreaterThanOrEqualTo(Integer value) {
addCriterion("sort >=", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThan(Integer value) {
addCriterion("sort <", value, "sort");
return (Criteria) this;
}
public Criteria andSortLessThanOrEqualTo(Integer value) {
addCriterion("sort <=", value, "sort");
return (Criteria) this;
}
public Criteria andSortIn(List<Integer> values) {
addCriterion("sort in", values, "sort");
return (Criteria) this;
}
public Criteria andSortNotIn(List<Integer> values) {
addCriterion("sort not in", values, "sort");
return (Criteria) this;
}
public Criteria andSortBetween(Integer value1, Integer value2) {
addCriterion("sort between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andSortNotBetween(Integer value1, Integer value2) {
addCriterion("sort not between", value1, value2, "sort");
return (Criteria) this;
}
public Criteria andFactoryStatusIsNull() {
addCriterion("factory_status is null");
return (Criteria) this;
}
public Criteria andFactoryStatusIsNotNull() {
addCriterion("factory_status is not null");
return (Criteria) this;
}
public Criteria andFactoryStatusEqualTo(Integer value) {
addCriterion("factory_status =", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusNotEqualTo(Integer value) {
addCriterion("factory_status <>", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusGreaterThan(Integer value) {
addCriterion("factory_status >", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("factory_status >=", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusLessThan(Integer value) {
addCriterion("factory_status <", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) {
addCriterion("factory_status <=", value, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusIn(List<Integer> values) {
addCriterion("factory_status in", values, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusNotIn(List<Integer> values) {
addCriterion("factory_status not in", values, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusBetween(Integer value1, Integer value2) {
addCriterion("factory_status between", value1, value2, "factoryStatus");
return (Criteria) this;
}
public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) {
addCriterion("factory_status not between", value1, value2, "factoryStatus");
return (Criteria) this;
}
public Criteria andShowStatusIsNull() {
addCriterion("show_status is null");
return (Criteria) this;
}
public Criteria andShowStatusIsNotNull() {
addCriterion("show_status is not null");
return (Criteria) this;
}
public Criteria andShowStatusEqualTo(Integer value) {
addCriterion("show_status =", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusNotEqualTo(Integer value) {
addCriterion("show_status <>", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusGreaterThan(Integer value) {
addCriterion("show_status >", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("show_status >=", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusLessThan(Integer value) {
addCriterion("show_status <", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusLessThanOrEqualTo(Integer value) {
addCriterion("show_status <=", value, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusIn(List<Integer> values) {
addCriterion("show_status in", values, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusNotIn(List<Integer> values) {
addCriterion("show_status not in", values, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusBetween(Integer value1, Integer value2) {
addCriterion("show_status between", value1, value2, "showStatus");
return (Criteria) this;
}
public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {
addCriterion("show_status not between", value1, value2, "showStatus");
return (Criteria) this;
}
public Criteria andProductCountIsNull() {
addCriterion("product_count is null");
return (Criteria) this;
}
public Criteria andProductCountIsNotNull() {
addCriterion("product_count is not null");
return (Criteria) this;
}
public Criteria andProductCountEqualTo(Integer value) {
addCriterion("product_count =", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountNotEqualTo(Integer value) {
addCriterion("product_count <>", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountGreaterThan(Integer value) {
addCriterion("product_count >", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountGreaterThanOrEqualTo(Integer value) {
addCriterion("product_count >=", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountLessThan(Integer value) {
addCriterion("product_count <", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountLessThanOrEqualTo(Integer value) {
addCriterion("product_count <=", value, "productCount");
return (Criteria) this;
}
public Criteria andProductCountIn(List<Integer> values) {
addCriterion("product_count in", values, "productCount");
return (Criteria) this;
}
public Criteria andProductCountNotIn(List<Integer> values) {
addCriterion("product_count not in", values, "productCount");
return (Criteria) this;
}
public Criteria andProductCountBetween(Integer value1, Integer value2) {
addCriterion("product_count between", value1, value2, "productCount");
return (Criteria) this;
}
public Criteria andProductCountNotBetween(Integer value1, Integer value2) {
addCriterion("product_count not between", value1, value2, "productCount");
return (Criteria) this;
}
public Criteria andProductCommentCountIsNull() {
addCriterion("product_comment_count is null");
return (Criteria) this;
}
public Criteria andProductCommentCountIsNotNull() {
addCriterion("product_comment_count is not null");
return (Criteria) this;
}
public Criteria andProductCommentCountEqualTo(Integer value) {
addCriterion("product_comment_count =", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountNotEqualTo(Integer value) {
addCriterion("product_comment_count <>", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountGreaterThan(Integer value) {
addCriterion("product_comment_count >", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) {
addCriterion("product_comment_count >=", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountLessThan(Integer value) {
addCriterion("product_comment_count <", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) {
addCriterion("product_comment_count <=", value, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountIn(List<Integer> values) {
addCriterion("product_comment_count in", values, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountNotIn(List<Integer> values) {
addCriterion("product_comment_count not in", values, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountBetween(Integer value1, Integer value2) {
addCriterion("product_comment_count between", value1, value2, "productCommentCount");
return (Criteria) this;
}
public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) {
addCriterion("product_comment_count not between", value1, value2, "productCommentCount");
return (Criteria) this;
}
public Criteria andLogoIsNull() {
addCriterion("logo is null");
return (Criteria) this;
}
public Criteria andLogoIsNotNull() {
addCriterion("logo is not null");
return (Criteria) this;
}
public Criteria andLogoEqualTo(String value) {
addCriterion("logo =", value, "logo");
return (Criteria) this;
}
public Criteria andLogoNotEqualTo(String value) {
addCriterion("logo <>", value, "logo");
return (Criteria) this;
}
public Criteria andLogoGreaterThan(String value) {
addCriterion("logo >", value, "logo");
return (Criteria) this;
}
public Criteria andLogoGreaterThanOrEqualTo(String value) {
addCriterion("logo >=", value, "logo");
return (Criteria) this;
}
public Criteria andLogoLessThan(String value) {
addCriterion("logo <", value, "logo");
return (Criteria) this;
}
public Criteria andLogoLessThanOrEqualTo(String value) {
addCriterion("logo <=", value, "logo");
return (Criteria) this;
}
public Criteria andLogoLike(String value) {
addCriterion("logo like", value, "logo");
return (Criteria) this;
}
public Criteria andLogoNotLike(String value) {
addCriterion("logo not like", value, "logo");
return (Criteria) this;
}
public Criteria andLogoIn(List<String> values) {
addCriterion("logo in", values, "logo");
return (Criteria) this;
}
public Criteria andLogoNotIn(List<String> values) {
addCriterion("logo not in", values, "logo");
return (Criteria) this;
}
public Criteria andLogoBetween(String value1, String value2) {
addCriterion("logo between", value1, value2, "logo");
return (Criteria) this;
}
public Criteria andLogoNotBetween(String value1, String value2) {
addCriterion("logo not between", value1, value2, "logo");
return (Criteria) this;
}
public Criteria andBigPicIsNull() {
addCriterion("big_pic is null");
return (Criteria) this;
}
public Criteria andBigPicIsNotNull() {
addCriterion("big_pic is not null");
return (Criteria) this;
}
public Criteria andBigPicEqualTo(String value) {
addCriterion("big_pic =", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicNotEqualTo(String value) {
addCriterion("big_pic <>", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicGreaterThan(String value) {
addCriterion("big_pic >", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicGreaterThanOrEqualTo(String value) {
addCriterion("big_pic >=", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicLessThan(String value) {
addCriterion("big_pic <", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicLessThanOrEqualTo(String value) {
addCriterion("big_pic <=", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicLike(String value) {
addCriterion("big_pic like", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicNotLike(String value) {
addCriterion("big_pic not like", value, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicIn(List<String> values) {
addCriterion("big_pic in", values, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicNotIn(List<String> values) {
addCriterion("big_pic not in", values, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicBetween(String value1, String value2) {
addCriterion("big_pic between", value1, value2, "bigPic");
return (Criteria) this;
}
public Criteria andBigPicNotBetween(String value1, String value2) {
addCriterion("big_pic not between", value1, value2, "bigPic");
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);
}
}
}
1.4,dao层xml,dao层
<delete id="deleteByExample" parameterType="com.macro.mall.model.PmsBrandExample">
delete from pms_brand
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
int deleteByExample(PmsBrandExample example);
2,批量更新 (显示状态show_status)
2.1,controller
@ApiOperation(value = "批量更新显示状态")
@RequestMapping(value = "/update/showStatus", method = RequestMethod.POST)
@ResponseBody
public CommonResult updateShowStatus(@RequestParam("ids") List<Long> ids,
@RequestParam("showStatus") Integer showStatus) {
int count = brandService.updateShowStatus(ids, showStatus);
if (count > 0) {
return CommonResult.success(count);
} else {
return CommonResult.failed();
}
}
2.2,serviceImpl,service
/**
* 修改显示状态
*/
int updateShowStatus(List<Long> ids, Integer showStatus);
跟批量删除不同的是。多了一个步骤。创建pmsBrand对象。赋值状态
@Override
public int updateShowStatus(List<Long> ids, Integer showStatus) {
PmsBrand pmsBrand = new PmsBrand();
pmsBrand.setShowStatus(showStatus);
PmsBrandExample pmsBrandExample = new PmsBrandExample();
pmsBrandExample.createCriteria().andIdIn(ids);
return brandMapper.updateByExampleSelective(pmsBrand, pmsBrandExample);
}
2.3,dao,dao.xml
int updateByExampleSelective(@Param("record") PmsBrand record, @Param("example") PmsBrandExample example);
<update id="updateByExampleSelective" parameterType="map">
update pms_brand
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.name != null">
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.firstLetter != null">
first_letter = #{record.firstLetter,jdbcType=VARCHAR},
</if>
<if test="record.sort != null">
sort = #{record.sort,jdbcType=INTEGER},
</if>
<if test="record.factoryStatus != null">
factory_status = #{record.factoryStatus,jdbcType=INTEGER},
</if>
<if test="record.showStatus != null">
show_status = #{record.showStatus,jdbcType=INTEGER},
</if>
<if test="record.productCount != null">
product_count = #{record.productCount,jdbcType=INTEGER},
</if>
<if test="record.productCommentCount != null">
product_comment_count = #{record.productCommentCount,jdbcType=INTEGER},
</if>
<if test="record.logo != null">
logo = #{record.logo,jdbcType=VARCHAR},
</if>
<if test="record.bigPic != null">
big_pic = #{record.bigPic,jdbcType=VARCHAR},
</if>
<if test="record.brandStory != null">
brand_story = #{record.brandStory,jdbcType=LONGVARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
3、最简易的批量软删除写法(测试用)
controller
@ApiOperation(value = "批量删除用户")
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public CommonResult delete(@RequestBody Long [] ids) {
CommonResult commonResult;
int count = userService.delete(ids);
if (count > 0) {
return CommonResult.success(count);
}
return CommonResult.failed();
}
方便前台直接传这个 UserService
/**
*
* @param ids ids
* @return
*/
int delete(Long[] ids);
UserServiceImpl
public int delete(Long[] ids) {
User user = new User();
user.setIsDelete("Y");
List<Long> longs = Arrays.asList(ids);
UserExample example = new UserExample();
example.createCriteria().andIsDeleteEqualTo("N").andIdIn(longs);
return userMapper.updateByExampleSelective(user, example);
}
UserExample
package com.example.android.model;
import java.util.ArrayList;
import java.util.List;
public class UserExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public UserExample() {
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<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<>();
}
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(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long 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<String> values) {
addCriterion("user_name in", values, "userName");
return (Criteria) this;
}
public Criteria andUserNameNotIn(List<String> 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 andUserPasswordIsNull() {
addCriterion("user_password is null");
return (Criteria) this;
}
public Criteria andUserPasswordIsNotNull() {
addCriterion("user_password is not null");
return (Criteria) this;
}
public Criteria andUserPasswordEqualTo(String value) {
addCriterion("user_password =", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordNotEqualTo(String value) {
addCriterion("user_password <>", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordGreaterThan(String value) {
addCriterion("user_password >", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordGreaterThanOrEqualTo(String value) {
addCriterion("user_password >=", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordLessThan(String value) {
addCriterion("user_password <", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordLessThanOrEqualTo(String value) {
addCriterion("user_password <=", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordLike(String value) {
addCriterion("user_password like", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordNotLike(String value) {
addCriterion("user_password not like", value, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordIn(List<String> values) {
addCriterion("user_password in", values, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordNotIn(List<String> values) {
addCriterion("user_password not in", values, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordBetween(String value1, String value2) {
addCriterion("user_password between", value1, value2, "userPassword");
return (Criteria) this;
}
public Criteria andUserPasswordNotBetween(String value1, String value2) {
addCriterion("user_password not between", value1, value2, "userPassword");
return (Criteria) this;
}
public Criteria andIsDeleteIsNull() {
addCriterion("is_delete is null");
return (Criteria) this;
}
public Criteria andIsDeleteIsNotNull() {
addCriterion("is_delete is not null");
return (Criteria) this;
}
public Criteria andIsDeleteEqualTo(String value) {
addCriterion("is_delete =", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteNotEqualTo(String value) {
addCriterion("is_delete <>", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteGreaterThan(String value) {
addCriterion("is_delete >", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteGreaterThanOrEqualTo(String value) {
addCriterion("is_delete >=", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteLessThan(String value) {
addCriterion("is_delete <", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteLessThanOrEqualTo(String value) {
addCriterion("is_delete <=", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteLike(String value) {
addCriterion("is_delete like", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteNotLike(String value) {
addCriterion("is_delete not like", value, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteIn(List<String> values) {
addCriterion("is_delete in", values, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteNotIn(List<String> values) {
addCriterion("is_delete not in", values, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteBetween(String value1, String value2) {
addCriterion("is_delete between", value1, value2, "isDelete");
return (Criteria) this;
}
public Criteria andIsDeleteNotBetween(String value1, String value2) {
addCriterion("is_delete not between", value1, value2, "isDelete");
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);
}
}
}
UserMapper
int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
UserMapper.xml
<update id="updateByExampleSelective" parameterType="map">
update user
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.userName != null">
user_name = #{record.userName,jdbcType=VARCHAR},
</if>
<if test="record.userPassword != null">
user_password = #{record.userPassword,jdbcType=VARCHAR},
</if>
<if test="record.isDelete != null">
is_delete = #{record.isDelete,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>