手摸手2-springboot编写基础的增删改查

目录

手摸手2-springboot编写基础的增删改查

创建controller层

实现 test 表中的添加、修改、删除及列表查询接口(未分页)

java 复制代码
package com.onejson.ojmall.controller;

import com.onejson.ojmall.entity.TestEntity;
import com.onejson.ojmall.entity.dto.TestDTO;
import com.onejson.ojmall.entity.vo.TestVO;
import com.onejson.ojmall.service.ITestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 测试表
 *
 * @author 微信公众号 onejson
 * @date 2023-08-11
 */
@RestController
@RequestMapping(path = "/test", produces = "application/json;charset=UTF-8")
@Api(value = "/test", tags = "测试表", produces = "application/json;charset=UTF-8")
public class TestController{

    @Resource
    private ITestService testService;

    /**
     * 查询列表
     */
    @ApiOperation(value = "条件查询列表分页", notes = "条件查询列表分页")
    @GetMapping("/list")
    public List<TestEntity> list(TestEntity sysTest) {
        return testService.selectTestList(sysTest);
    }

    /**
     * 新增
     */
    @ApiOperation(value = "新增")
    @PostMapping
    public boolean add(@Validated @RequestBody TestDTO testDTO) {
        return testService.insertTest(testDTO);
    }

    /**
     * 修改
     */
    @ApiOperation(value = "更新")
    @PutMapping
    public boolean edit(@RequestBody TestDTO testDTO) {
        return testService.updateTest(testDTO);
    }

    /**
     * 详情
     */
    @ApiOperation(value = "详情")
    @GetMapping(value = "/{id}")
    public TestVO getInfo(@PathVariable("id") Integer id) {

        return testService.getTestById(id);
    }

    /**
     * 删除
     */
    @ApiOperation(value = "删除")
    @DeleteMapping("/{ids}")
    public boolean remove(@PathVariable Integer[] ids) {
        return testService.removeTestByIds(ids);
    }


}

添加service层接口

java 复制代码
package com.onejson.ojmall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.onejson.ojmall.entity.TestEntity;
import com.onejson.ojmall.entity.dto.TestDTO;
import com.onejson.ojmall.entity.vo.TestVO;

import java.util.List;


/**
 * 测试表
 *
 * @author 微信公众号 onejson
 * @date 2023-08-11 11:24:47
 */
public interface ITestService extends IService<TestEntity> {


    /**
     * 查询测试表列表
     *
     * @param testEntity 测试表Entity类
     * @return list列表
     */
    List<TestEntity> selectTestList(TestEntity testEntity);


    /**
     * 新增测试表
     *
     * @param testDTO 测试表DTO类
     * @return 结果
     */
    boolean insertTest(TestDTO testDTO);


    /**
     * 更新测试表
     *
     * @param testDTO 测试表DTO类
     * @return 结果
     */
    boolean updateTest(TestDTO testDTO);


    /**
     * 详情测试表
     *
     * @param id id值
     * @return 结果
     */
    TestVO getTestById(Integer id);


    /**
     * 删除测试表
     *
     * @param ids id数组
     * @return 结果
     */
    boolean removeTestByIds(Integer[] ids);


}

service层实现

java 复制代码
package com.onejson.ojmall.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.onejson.ojmall.entity.TestEntity;
import com.onejson.ojmall.entity.dto.TestDTO;
import com.onejson.ojmall.entity.vo.TestVO;
import com.onejson.ojmall.mapper.TestMapper;
import com.onejson.ojmall.service.ITestService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;

/**
 * 测试表
 *
 * @author 微信公众号 onejson
 * @date 2023-08-11
 */
@Service
@Transactional
public class TestServiceImpl extends ServiceImpl<TestMapper, TestEntity> implements ITestService {

    @Resource
    private TestMapper testMapper;


    /**
     * 查询测试表列表
     *
     * @param testEntity 测试表Entity类
     * @return 测试表
     */
    @Override
    public List<TestEntity> selectTestList(TestEntity testEntity) {
        return testMapper.selectTestList(testEntity);
    }

    /**
     * 新增测试表
     *
     * @param testDTO 测试表DTO类
     * @return 结果
     */
    @Override
    public boolean insertTest(TestDTO testDTO) {

        TestEntity testInfoEntity = new TestEntity();
        BeanUtils.copyProperties(testDTO, testInfoEntity);

        return this.save(testInfoEntity);
    }

    /**
     * 更新测试表
     *
     * @param testDTO 测试表DTO类
     * @return 结果
     */
    @Override
    public boolean updateTest(TestDTO testDTO) {

        TestEntity testInfoEntity = new TestEntity();
        BeanUtils.copyProperties(testDTO, testInfoEntity);

        return this.updateById(testInfoEntity);
    }


    /**
     * 详情测试表
     *
     * @param id id值
     * @return 结果
     */
    @Override
    public TestVO getTestById(Integer id) {

        TestEntity testEntity = this.getById(id);
        TestVO testVO = new TestVO();
        BeanUtils.copyProperties(testEntity, testVO);

        return testVO;
    }


    /**
     * 删除测试表
     *
     * @param ids id数组
     * @return 结果
     */
    @Override
    public boolean removeTestByIds(Integer[] ids) {
        return this.removeByIds(Arrays.asList(ids));
    }


}

添加mapper层

java 复制代码
package com.onejson.ojmall.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.onejson.ojmall.entity.TestEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


/**
 * 测试表
 *
 * @author 微信公众号 onejson
 * @date 2023-08-11 11:24:47
 */
@Mapper
public interface TestMapper extends BaseMapper<TestEntity> {


    /**
     * 查询测试表列表
     *
     * @param testEntity 测试表Entity类
     * @return list列表
     */
    List<TestEntity> selectTestList(TestEntity testEntity);

    /**
     * 统计测试表个数
     *
     * @param testEntity 测试表Entity类
     * @return 符合条件的记录个数
     */
    Integer countTest(TestEntity testEntity);


}

mapper层对应的sql

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.onejson.ojmall.mapper.TestMapper">

    <!-- 可根据自己的需求,是否要使用 -->
    <resultMap type="com.onejson.ojmall.entity.TestEntity" id="testMap">
        <result property="id" column="id"/>
        <result property="title" column="title"/>
    </resultMap>

    <sql id="selectTest">
        select *
        from test
    </sql>

    <sql id="whereTest">
        <where>
            <if test="id !=null and id !=''">AND id = #{id,jdbcType=VARCHAR}</if>
            <if test="title !=null and title !=''">AND title = #{title,jdbcType=VARCHAR}</if>
        </where>
    </sql>

    <select id="selectTestList" parameterType="com.onejson.ojmall.entity.TestEntity" resultMap="testMap">
        <include refid="selectTest"/>
        <include refid="whereTest"/>
    </select>

    <select id="countTest" parameterType="com.onejson.ojmall.entity.TestEntity" resultType="java.lang.Integer">
        SELECT count(*)
        FROM (
        <include refid="selectTest"/>
        <include refid="whereTest"/>
        ) a
    </select>


</mapper>

添加扫描注解,对应sql文件的目录

java 复制代码
@MapperScan("com.onejson.ojmall.mapper")
相关推荐
Dcs16 分钟前
VSCode等多款主流 IDE 爆出安全漏洞!插件“伪装认证”可执行恶意命令!
java
天涯学馆19 分钟前
网站秒变 App!手把手教你搞定 PWA
前端·javascript·面试
保持学习ing22 分钟前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机
京东云开发者33 分钟前
Java的SPI机制详解
java
超级小忍1 小时前
服务端向客户端主动推送数据的几种方法(Spring Boot 环境)
java·spring boot·后端
程序无bug1 小时前
Spring IoC注解式开发无敌详细(细节丰富)
java·后端
小莫分享1 小时前
Java Lombok 入门
java
程序无bug1 小时前
Spring 对于事务上的应用的详细说明
java·后端
食亨技术团队1 小时前
被忽略的 SAAS 生命线:操作日志有多重要
java·后端
苦学编程的谢1 小时前
Maven
java·maven·intellij-idea