个人博客(7、简单的增删改查)

简介: 个人博客(7、简单的增删改查)

一、前言

之前我完善了所有的和用户、登录相关的地方, 接下来我要开始最简单的重复性代码开发工作了, 一些简单的不用动脑的我最喜欢的增删改查

二、增删改查详情

访客记录-列表查询

访客记录实际上是还未完善的,以为按照我的想法是搞个aop之类的去获取每一次请求的用户ip,然后访问代表访客+1, 使用redis记录一天或者8小时内,这个ip再次访问访客不增加,超过时间再次访问访客增加。

或者是直接简单粗暴的在首页接口搞一下,访问首页某个接口自动增加

所以目前暂时只做了列表功能,增加功能应该会放在后续开发,列表还是之前说的,为了统计访客所在地区,所以新增了两个字段,经纬度,后续还会对接百度或者高德的接口,来获取ip相对应的坐标

@PostMapping("list")
@ApiOperation("查看列表")
public ResultVo getList(PageVo page){
    LambdaQueryWrapper<AccessIp> wrapper = new LambdaQueryWrapper<>();
    // 可以根据来访时间查询
    wrapper.between(page.getStartTime()!= null && page.getEndTime() != null,
                            AccessIp::getCreateTime, page.getStartTime(), page.getEndTime());
    List<AccessIp> list = accessIpService.list(wrapper);
    return new ResultVo(list);
}
复制代码

归档表-列表、删除

归档对我来说只有列表和新增功能,删除和修改很没必要,上线出bug了就在下次更新的时候干掉就好了

@Resource
private IArchiveService archiveService;
@PostMapping("list")
@ApiOperation("查看列表")
public ResultVo getList(PageVo page){
    List<Archive> list = archiveService.list();
    return new ResultVo(list);
}
@PostMapping
@ApiOperation("新增")
public ResultVo insert(Archive archive){
    archiveService.save(archive);
    return new ResultVo();
}
复制代码

文章分类增删改查

分类的增删改查主要注意点是分类名称不可重复

@PostMapping("list")
@ApiOperation("查看列表")
public ResultVo getList(){
    List<CategoryListVo> list = categoryService.getList();
    return new ResultVo(list);
}
@PostMapping
@ApiOperation("新增")
public ResultVo insert(Category category){
    categoryService.nameIsOnly(category.getTypeName(), null);
    Category catrgoryModel = Category.builder()
            .typeName(category.getTypeName())
            .createTime(LocalDateTime.now())
            .status("0")
            .parentId(category.getParentId()).build();
    categoryService.save(catrgoryModel);
    return new ResultVo();
}
@PutMapping
@ApiOperation("修改")
public ResultVo update(Category dto){
    categoryService.nameIsOnly(dto.getTypeName(), dto.getBlid());
    Category build = Category.builder()
            .blid(dto.getBlid())
            .typeName(dto.getTypeName())
            .updateTime(LocalDateTime.now())
            .build();
    categoryService.updateById(build);
    return new ResultVo();
}
@DeleteMapping
@ApiOperation("删除")
public ResultVo delete(Long id){
    Category byId = categoryService.getById(id);
    if (byId.getNum() > 0){
        return new ResultVo().error("该分类下有文章, 不可删除");
    }
    return new ResultVo();
}
复制代码

下面是在service层的:判断分类名称是否重复方法

@Override
public boolean nameIsOnly(String name,Long id) {
    LambdaQueryWrapper<Category> wrapper = new LambdaQueryWrapper<>();
    wrapper.eq(Category::getTypeName, name)
            .ne(id != null,Category::getBlid, id);
    Category one = this.getOne(wrapper);
    // 判断该分类名称是否存在
    if (one != null){
        throw new BlogException(ErrorEnum.CATEGORY_EXIST_ERROR);
    }
    return true;
}
复制代码

友链增删改查

因为友链不是很重要,而且懒得很,所以入参出参都没做判断

@PostMapping("list")
@ApiOperation("查看列表")
public ResultVo getList(PageVo dto){
    Page<FriendLink> page = new Page<>(dto.getPage(),dto.getSize());
    Page<FriendLink> list = friendLinkService.page(page);
    return new ResultVo(list);
}
@PostMapping
@ApiOperation("新增")
public ResultVo insert(FriendLink friendLink){
    friendLinkService.save(friendLink);
    return new ResultVo();
}
@PutMapping
@ApiOperation("修改")
public ResultVo update(FriendLink friendLink){
    friendLinkService.updateById(friendLink);
    return new ResultVo();
}
@DeleteMapping
@ApiOperation("删除")
public ResultVo delete(Long id ){
    friendLinkService.removeById(id);
    return new ResultVo();
}
复制代码

标签增删改查

标签和分类一样的,名称不可重复

@PostMapping("list")
@ApiOperation("查看列表")
public ResultVo getList(){
    List<Label> list = labelService.list();
    return new ResultVo(list);
}
@PostMapping
@ApiOperation("新增")
public ResultVo insert(Label label){
    labelService.nameIsOnly(label.getTagName(), null);
    label.setCreateTime(LocalDateTime.now());
    labelService.save(label);
    return new ResultVo();
}
@PutMapping
@ApiOperation("修改")
public ResultVo update(Label label){
    labelService.nameIsOnly(label.getTagName(),label.getBlid());
    label.setUpdateTime(LocalDateTime.now());
    labelService.updateById(label);
    return new ResultVo();
}
@DeleteMapping
@ApiOperation("删除")
public ResultVo delete(Long id){
    Label byId = labelService.getById(id);
    if (byId.getNum() > 0){
        return new ResultVo().error("该标签下有文章, 不可删除");
    }
    labelService.removeById(id);
    return new ResultVo();
}
复制代码

判断名称是否重复Service层方法

@Override
public boolean nameIsOnly(String name, Long id) {
    LambdaQueryWrapper<Label> wrapper = new LambdaQueryWrapper<>();
    wrapper.eq(Label::getTagName, name)
            .ne(id != null, Label::getBlid, id);
    Label one = this.getOne(wrapper);
    if(one != null){
        throw new BlogException(ErrorEnum.LABEL_EXIST_ERROR);
    }
    return false;
}
复制代码

删除Controller

删除ArticleInfoController,文章详情等功能具体实现在ArticleController 删除CityController,城市具体信息都是在数据库存储的

网络异常,图片无法展示
|

三、总结

这章大概是最爽的了吧,全是最基础的增删改查,有难度的一个没写,哈哈哈



目录
相关文章
|
21天前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
8天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
2月前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
33 1
|
2月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
2月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
2月前
|
开发工具 数据安全/隐私保护 索引
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
|
2月前
|
关系型数据库 MySQL 数据库
MySQL数据库的增删改查
MySQL数据库的增删改查
14 0
|
2月前
|
SQL 关系型数据库 MySQL
"Python与MySQL的浪漫邂逅:一键掌握增删改查,开启你的数据库编程之旅!"
【8月更文挑战第21天】Python因其简洁的语法和强大的库支持,成为连接数据库的首选工具。本文介绍如何使用Python连接MySQL数据库并执行基本操作。首先需安装`mysql-connector-python`库。通过配置连接信息建立数据库连接后,可利用`cursor.execute()`执行SQL语句进行数据的增删改查,并通过`commit()`提交更改。查询时使用`fetchall()`或`fetchone()`获取结果。记得处理异常及关闭连接以释放资源。掌握这些基础,有助于高效进行数据库编程。
32 0
|
2月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
179 0
|
2月前
|
前端开发 Java 关系型数据库
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
166 0
下一篇
无影云桌面