以下示例满足这些关键约束:
*Mapper.xmlResultRespone)package com.tofly.gas.demo.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.common.result.ResultRespone;
import com.tofly.gas.demo.entity.GasStation;
import com.tofly.gas.demo.service.GasStationService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
@RestController
@AllArgsConstructor
@RequestMapping("/gasStation")
public class GasStationController {
private final GasStationService gasStationService;
@GetMapping("/page")
public ResultRespone page(Page<GasStation> page, @ModelAttribute GasStation query) {
return ResultRespone.success(gasStationService.pageQuery(page, query));
}
@GetMapping("/{id}")
public ResultRespone getById(@PathVariable Long id) {
return ResultRespone.success(gasStationService.getById(id));
}
@PostMapping
public ResultRespone save(@RequestBody GasStation entity) {
return ResultRespone.success(gasStationService.create(entity));
}
@PutMapping
public ResultRespone update(@RequestBody GasStation entity) {
return ResultRespone.success(gasStationService.modify(entity));
}
@DeleteMapping("/{id}")
public ResultRespone delete(@PathVariable Long id) {
return ResultRespone.success(gasStationService.removeById(id));
}
@DeleteMapping("/deleteByIds")
public ResultRespone deleteByIds(String ids) {
return ResultRespone.success(gasStationService.removeByIds(Arrays.asList(ids.split(","))));
}
}
package com.tofly.gas.demo.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.gas.demo.entity.GasStation;
public interface GasStationService extends IService<GasStation> {
Page<GasStation> pageQuery(Page<GasStation> page, GasStation query);
GasStation create(GasStation entity);
boolean modify(GasStation entity);
}
package com.tofly.gas.demo.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tofly.gas.demo.entity.GasStation;
import com.tofly.gas.demo.mapper.GasStationMapper;
import com.tofly.gas.demo.service.GasStationService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class GasStationServiceImpl extends ServiceImpl<GasStationMapper, GasStation> implements GasStationService {
@Override
public Page<GasStation> pageQuery(Page<GasStation> page, GasStation query) {
return this.page(page, Wrappers.query(query));
}
@Override
public GasStation create(GasStation entity) {
this.save(entity);
return entity;
}
@Override
public boolean modify(GasStation entity) {
return this.updateById(entity);
}
}
package com.tofly.gas.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.gas.demo.entity.GasStation;
import org.apache.ibatis.annotations.Param;
public interface GasStationMapper extends BaseMapper<GasStation> {
Page<GasStation> pageCustom(Page<GasStation> page, @Param("q") GasStation query);
}
<?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.tofly.gas.demo.mapper.GasStationMapper">
<sql id="Base_Columns">
id, station_code, station_name, status, create_time, update_time
</sql>
<resultMap id="GasStationResultMap" type="com.tofly.gas.demo.entity.GasStation">
<id column="id" property="id"/>
<result column="station_code" property="stationCode"/>
<result column="station_name" property="stationName"/>
<result column="status" property="status"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<select id="pageCustom" resultMap="GasStationResultMap">
SELECT <include refid="Base_Columns"/>
FROM t_gas_station
<where>
<if test="q != null and q.stationName != null and q.stationName != ''">
AND station_name LIKE CONCAT('%', #{q.stationName}, '%')
</if>
<if test="q != null and q.status != null">
AND status = #{q.status}
</if>
</where>
ORDER BY update_time DESC
</select>
</mapper>