目录
- 手摸手2-springboot编写基础的增删改查
- 创建controller层
- 添加service层接口
- service层实现
- 添加mapper层
- mapper层对应的sql
- 添加扫描注解,对应sql文件的目录
手摸手2-springboot编写基础的增删改查
创建controller层
实现 test 表中的添加、修改、删除及列表查询接口(未分页)
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{@Resourceprivate ITestService testService;/*** 查询列表*/@ApiOperation(value = "条件查询列表分页", notes = "条件查询列表分页")@GetMapping("/list")public List<TestEntity> list(TestEntity sysTest) {return testService.selectTestList(sysTest);}/*** 新增*/@ApiOperation(value = "新增")@PostMappingpublic boolean add(@Validated @RequestBody TestDTO testDTO) {return testService.insertTest(testDTO);}/*** 修改*/@ApiOperation(value = "更新")@PutMappingpublic 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层接口
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层实现
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 {@Resourceprivate TestMapper testMapper;/*** 查询测试表列表** @param testEntity 测试表Entity类* @return 测试表*/@Overridepublic List<TestEntity> selectTestList(TestEntity testEntity) {return testMapper.selectTestList(testEntity);}/*** 新增测试表** @param testDTO 测试表DTO类* @return 结果*/@Overridepublic boolean insertTest(TestDTO testDTO) {TestEntity testInfoEntity = new TestEntity();BeanUtils.copyProperties(testDTO, testInfoEntity);return this.save(testInfoEntity);}/*** 更新测试表** @param testDTO 测试表DTO类* @return 结果*/@Overridepublic boolean updateTest(TestDTO testDTO) {TestEntity testInfoEntity = new TestEntity();BeanUtils.copyProperties(testDTO, testInfoEntity);return this.updateById(testInfoEntity);}/*** 详情测试表** @param id id值* @return 结果*/@Overridepublic TestVO getTestById(Integer id) {TestEntity testEntity = this.getById(id);TestVO testVO = new TestVO();BeanUtils.copyProperties(testEntity, testVO);return testVO;}/*** 删除测试表** @param ids id数组* @return 结果*/@Overridepublic boolean removeTestByIds(Integer[] ids) {return this.removeByIds(Arrays.asList(ids));}}
添加mapper层
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 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文件的目录
@MapperScan("com.onejson.ojmall.mapper")