写一个springboot的增删改查

controller层

@RestController
@RequestMapping("/cms/page")
public class CmsPageController implements CmsPageControllerApi {

@Autowired
PageService pageService;

@Override
@GetMapping("/list/{page}/{size}")
public QueryResponseResult findList(@PathVariable("page") int page, @PathVariable("size")int size, QueryPageRequest queryPageRequest) {

/* //暂时用静态数据
//定义queryResult
QueryResult queryResult =new QueryResult<>();
List list = new ArrayList<>();
CmsPage cmsPage = new CmsPage();
cmsPage.setPageName(“测试页面”);
list.add(cmsPage);
queryResult.setList(list);
queryResult.setTotal(1);

    QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult);
    return queryResponseResult;*/
    //调用service
    return pageService.findList(page,size,queryPageRequest);
}

@Override
@PostMapping("/add")
public CmsPageResult add(@RequestBody  CmsPage cmsPage) {
    return pageService.add(cmsPage);
}

@Override
@GetMapping("/get/{id}")
public CmsPage findById(@PathVariable("id") String id) {
    return pageService.getById(id);
}

@Override
@PutMapping("/edit/{id}")//这里使用put方法,http 方法中put表示更新
public CmsPageResult edit(@PathVariable("id")String id, @RequestBody CmsPage cmsPage) {
    return pageService.update(id,cmsPage);
}

@Override
@DeleteMapping("/del/{id}")
public ResponseResult delete(@PathVariable("id") String id) {
    return pageService.delete(id);
}

}

service层
@Service
public class PageService {

@Autowired
CmsPageRepository cmsPageRepository;


/**
 * 页面查询方法
 * @param page 页码,从1开始记数
 * @param size 每页记录数
 * @param queryPageRequest 查询条件
 * @return
 */
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest){
    if(queryPageRequest == null){
        queryPageRequest = new QueryPageRequest();
    }
    //自定义条件查询
    //定义条件匹配器
    ExampleMatcher exampleMatcher = ExampleMatcher.matching()
            .withMatcher("pageAliase", ExampleMatcher.GenericPropertyMatchers.contains());
    //条件值对象
    CmsPage cmsPage = new CmsPage();
    //设置条件值(站点id)
    if(StringUtils.isNotEmpty(queryPageRequest.getSiteId())){
        cmsPage.setSiteId(queryPageRequest.getSiteId());
    }
    //设置模板id作为查询条件
    if(StringUtils.isNotEmpty(queryPageRequest.getTemplateId())){
        cmsPage.setTemplateId(queryPageRequest.getTemplateId());
    }
    //设置页面别名作为查询条件
    if(StringUtils.isNotEmpty(queryPageRequest.getPageAliase())){
        cmsPage.setPageAliase(queryPageRequest.getPageAliase());
    }
    //定义条件对象Example
    Example<CmsPage> example = Example.of(cmsPage,exampleMatcher);
    //分页参数
    if(page <=0){
        page = 1;
    }
    page = page -1;
    if(size<=0){
        size = 10;
    }
    Pageable pageable = PageRequest.of(page,size);
    Page<CmsPage> all = cmsPageRepository.findAll(example,pageable);//实现自定义条件查询并且分页查询
    QueryResult queryResult = new QueryResult();
    queryResult.setList(all.getContent());//数据列表
    queryResult.setTotal(all.getTotalElements());//数据总记录数
    QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult);
    return queryResponseResult;
}

/* //新增页面
public CmsPageResult add(CmsPage cmsPage){
//校验页面名称、站点Id、页面webpath的唯一性
//根据页面名称、站点Id、页面webpath去cms_page集合,如果查到说明此页面已经存在,如果查询不到再继续添加
CmsPage cmsPage1 = cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(), cmsPage.getSiteId(), cmsPage.getPageWebPath());
if(cmsPage1==null){
//调用dao新增页面
cmsPage.setPageId(null);
cmsPageRepository.save(cmsPage);
return new CmsPageResult(CommonCode.SUCCESS,cmsPage);
}
//添加失败
return new CmsPageResult(CommonCode.FAIL,null);

}*/
//新增页面
public CmsPageResult add(CmsPage cmsPage) {
    if(cmsPage == null){
        //抛出异常,非法参数异常..指定异常信息的内容

    }
    //校验页面名称、站点Id、页面webpath的唯一性
    //根据页面名称、站点Id、页面webpath去cms_page集合,如果查到说明此页面已经存在,如果查询不到再继续添加
    CmsPage cmsPage1 = cmsPageRepository.findByPageNameAndSiteIdAndPageWebPath(cmsPage.getPageName(), cmsPage.getSiteId(), cmsPage.getPageWebPath());
    if(cmsPage1!=null){
        //页面已经存在
        //抛出异常,异常内容就是页面已经存在
        ExceptionCast.cast(CmsCode.CMS_ADDPAGE_EXISTSNAME);
    }

    //调用dao新增页面
    cmsPage.setPageId(null);
    cmsPageRepository.save(cmsPage);
    return new CmsPageResult(CommonCode.SUCCESS,cmsPage);

}
//根据页面id查询页面
public CmsPage getById(String id){
    Optional<CmsPage> optional = cmsPageRepository.findById(id);
    if(optional.isPresent()){
        CmsPage cmsPage = optional.get();
        return cmsPage;
    }
    return null;
}

//修改页面
public CmsPageResult update(String id,CmsPage cmsPage){
    //根据id从数据库查询页面信息
    CmsPage one = this.getById(id);
    if(one!=null){
        //准备更新数据
        //设置要修改的数据
        //更新模板id
        one.setTemplateId(cmsPage.getTemplateId());
        //更新所属站点
        one.setSiteId(cmsPage.getSiteId());
        //更新页面别名
        one.setPageAliase(cmsPage.getPageAliase());
        //更新页面名称
        one.setPageName(cmsPage.getPageName());
        //更新访问路径
        one.setPageWebPath(cmsPage.getPageWebPath());
        //更新物理路径
        one.setPagePhysicalPath(cmsPage.getPagePhysicalPath());
        //提交修改
        cmsPageRepository.save(one);
        return new CmsPageResult(CommonCode.SUCCESS,one);
    }
    //修改失败
    return new CmsPageResult(CommonCode.FAIL,null);

}

//根据id删除页面
public ResponseResult delete(String id){
    //先查询一下
    Optional<CmsPage> optional = cmsPageRepository.findById(id);
    if(optional.isPresent()){
        cmsPageRepository.deleteById(id);
        return new ResponseResult(CommonCode.SUCCESS);
    }
    return new ResponseResult(CommonCode.FAIL);
}

}

dao层
public interface CmsPageRepository extends MongoRepository<CmsPage,String> {
//根据页面名称查询
CmsPage findByPageName(String pageName);
//根据页面名称、站点Id、页面webpath查询
CmsPage findByPageNameAndSiteIdAndPageWebPath(String pageName,String siteId,String pageWebPath);
}

test单元测试

@SpringBootTest
@RunWith(SpringRunner.class)
public class CmsPageRepositoryTest {

@Autowired
CmsPageRepository cmsPageRepository;

@Test
public void testFindAll(){
    List<CmsPage> all = cmsPageRepository.findAll();
    System.out.println(all);

}

//分页查询
@Test
public void testFindPage(){
    //分页参数
    int page = 1;//从0开始
    int size = 10;
    Pageable pageable = PageRequest.of(page,size);
    Page<CmsPage> all = cmsPageRepository.findAll(pageable);
    System.out.println(all);
}

//自定义条件查询测试
@Test
public void testFindAllByExample() {
    //分页参数
    int page = 0;//从0开始
    int size = 10;
    Pageable pageable = PageRequest.of(page,size);

    //条件值对象
    CmsPage cmsPage= new CmsPage();
    //要查询5a751fab6abb5044e0d19ea1站点的页面

// cmsPage.setSiteId(“5b30b052f58b4411fc6cb1cf”);
//设置模板id条件
// cmsPage.setTemplateId(“5ad9a24d68db5239b8fef199”);
//设置页面别名
cmsPage.setPageAliase(“轮播”);
//条件匹配器
// ExampleMatcher exampleMatcher = ExampleMatcher.matching();
// exampleMatcher = exampleMatcher.withMatcher(“pageAliase”, ExampleMatcher.GenericPropertyMatchers.contains());
ExampleMatcher exampleMatcher = ExampleMatcher.matching()
.withMatcher(“pageAliase”, ExampleMatcher.GenericPropertyMatchers.contains());
//ExampleMatcher.GenericPropertyMatchers.contains() 包含关键字
// ExampleMatcher.GenericPropertyMatchers.startsWith()//前缀匹配
//定义Example
Example example = Example.of(cmsPage,exampleMatcher);
Page all = cmsPageRepository.findAll(example, pageable);
List content = all.getContent();
System.out.println(content);
}

//修改
@Test
public void testUpdate() {
    //查询对象
    Optional<CmsPage> optional = cmsPageRepository.findById("5b4b1d8bf73c6623b03f8cec");
    if(optional.isPresent()){
        CmsPage cmsPage = optional.get();
        //设置要修改值
        cmsPage.setPageAliase("test01");
        //...
        //修改
        CmsPage save = cmsPageRepository.save(cmsPage);
        System.out.println(save);
    }

}

//根据页面名称查询
@Test
public void testfindByPageName(){
    CmsPage cmsPage = cmsPageRepository.findByPageName("测试页面");
    System.out.println(cmsPage);
}

}

api层 service层接口

@Api(value=“cms页面管理接口”,description = “cms页面管理接口,提供页面的增、删、改、查”)
public interface CmsPageControllerApi {

@ApiOperation("分页查询页面列表")
@ApiImplicitParams({
        @ApiImplicitParam(name="page",value = "页码",required=true,paramType="path",dataType="int"),
        @ApiImplicitParam(name="size",value = "每页记录数",required=true,paramType="path",dataType="int")
})

public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);
//新增页面

@ApiOperation("新增页面")
public CmsPageResult add(CmsPage cmsPage);

//根据页面id查询页面信息
@ApiOperation("根据页面id查询页面信息")
public CmsPage findById(String id);
//修改页面
@ApiOperation("修改页面")
public CmsPageResult edit(String id,CmsPage cmsPage);

//删除页面
@ApiOperation("删除页面")
public ResponseResult delete(String id);

}

测试工具的接口

@Configuration
@EnableSwagger2
public class Swagger2Configuration {
@Bean

public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.xuecheng"))
            .paths(PathSelectors.any())
            .build();
}

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("学成网api文档")
            .description("学成网api文档")

// .termsOfServiceUrl("/")
.version(“1.0”)
.build();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值