CRUD增删改查(分页查询)全流程【springboot + mybatis + mysql】详细代码

增删改查练手项目【springboot + mybatis + mysql】

(以产品实例为例)

(1)controller层:

@RestController
@RequestMapping("product")
@Api(tags = "产品")
@CrossOrigin("*")   //解决跨域问题
@Slf4j
class ProductController{
    /**
    * 服务对象
     */
    @Resource
    private ProductService productService;
    /**
     * 获取产品列表(分页)
     * @param param product和Page参数
     * @return 产品列表
     */
    @ApiOperation(value = "获取产品列表接口",notes = "获取产品列表接口")
    @GetMapping("/getProduct")
    @ResponseBody
    public List<Product> getProduct(@RequestBody ProductParam param) {
        Product product = param.getProduct();
        Page page = param.getPage();
        return this.productService.getProduct(product,page);
    }
    /**
     * 新增产品接口
     * @param product 产品实例
     * @return 影响行数
     */
    @ApiOperation(value = "新增产品接口",notes = "新增产品接口")
    @PostMapping("/addProduct")
    public int addProduct(@RequestBody Product product) {
        return this.productService.addProduct(product);
    }
    /**
     * 修改产品接口
     * @param product  产品实例
     * @return  影响行数
     */
    @ApiOperation(value = "修改产品接口",notes = "修改产品接口")
    @PostMapping("/updateProduct")
    public int updateProduct(@RequestBody Product product) {
        return this.productService.updateProduct(product);
    }
    /**
     * 删除产品接口
     * @param productId  产品id
     * @return  影响行数
     */
    @ApiOperation(value = "删除产品接口",notes = "删除产品接口")
    @PostMapping("/deleteProduct")
    public int deleteProduct(String productId) {
        return this.productService.deleteProduct(productId);
    }
}
​
@Data
class ProductParam{
    private Product product;
    private Page page;
}

(2)service层接口:

    /**
     * 获取产品列表
     * @return  产品列表
     */
    List<Product> getProduct(Product product, Page page);
    /**
     * 新增产品
     * @param product 产品实例
     * @return  影响行数
     */
    int addProduct(Product product);
    /**
     * 修改产品
     * @param product   产品实例
     * @return  影响行数
     */
    int updateProduct(Product product);
    /**
     * 删除产品
     * @param productId  产品id
     * @return  影响行数
     */
    int deleteProduct(String productId)

(3)serviceImpl实现类:

@Service("productService")
public class ProductServiceImpl implements ProductService {
    @Resource
    private ProductDao productDao;
    /**
     * 获取产品列表(分页查询)
     * @param product  查询条件
     * @param page  分页对象
     * @return 产品列表
     */
    @Override
    public List<Product> getProduct(Product product, Page page) {
        return productpDao.query(product,page);
    }
    /**
     * 新增产品
     * @param productp  产品实例
     * @return 影响行数
     */
    @Override
    public int addProduct(Product product) {
        return productpDao.insert(product);
    }
    /**
     * 修改产品
     * @param productp   产品实例
     * @return  影响行数
     */
    @Override
    public int updateProduct(Product product) {
        return productpDao.update(productp);
    }
    /**
     * 删除产品
     * @param productId  产品id
     * @return  影响行数
     */
    @Override
    public int deleteProduct(String productId) {
        return productpDao.deleteById(productId);
    }
}

(4)dao层接口:

    /**
     * 查询指定行数据
     * @param product  查询条件
     * @param page  分页对象
     * @return 对象列表
     */
    List<Product> query(@Param("product") Product product, @Param("page") Page page);
    /**
     * 新增数据
     * @param product 实例对象
     * @return 影响行数
     */
    int insert(Product product);
    /**
     * 修改数据
     * @param product 实例对象
     * @return 影响行数
     */
    int update(Product product);
    /**
     * 通过主键删除数据
     * @param productId 主键
     * @return 影响行数
     */
    int deleteById(String productId);

(5)mapper.xml:

<!--查询指定行数据(分页)-->
    <select id="query" resultMap="ProductMap">
        select
          PRODUCT_ID, PRODUCT_NM, PRODUCT_TYPE
        from product_list
        <where>
            <if test="productId != null and productId != ''">
                and PRODUCT_ID = #{productId}
            </if>
            <if test="productNm != null and productNm != ''">
                and PRODUCT_NM = #{productNm}
            </if>
            <if test="productType != null">
                and PRODUCT_TYPE = #{productType}
            </if>
        </where>
        order by ${page.sort} ${page.sortType}
        limit #{page.limitCount}, #{page.pageNum}
    </select>
        
<!--新增所有列-->
    <insert id="insert" keyProperty="productId" useGeneratedKeys="true">
        insert into product_list(PRODUCT_NM, PRODUCT_TYPE)
        values (#{productNm}, #{productType})
    </insert>
        
<!--通过主键修改数据-->
    <update id="update">
        update product_list
        <set>
            <if test="productNm != null and productNm != ''">
                PRODUCT_NM = #{productNm},
            </if>
            <if test="productType != null">
                PRODUCT_TYPE = #{productType},
            </if>
        </set>
        where PRODUCT_ID = #{productId}
    </update>
​
<!--通过主键删除-->
    <delete id="deleteById">
        delete from product_list where PRODUCT_ID = #{productId}
    </delete>

(6)测试调用:

http://IP:端口号/项目name/product/getProduct

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值