(目录)
手摸手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{
@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层接口
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 {
@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层
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)