【SpringBoot搭建个人博客】- 实体类构建(五)

欢迎给star以鼓励(^_−)☆

本篇文章将从数据库的表结构来编写实体类,主要分析一下涉及到多表查询相关的实体类要如何设置变量(用户实体类在上篇文章中已经编写完)

在之前的文章中,都是先给出代码,然后做出分析,感觉这样不太好。咱们养成个习惯,先分析这代码要如何去写,再动手去写,不要一来就复制到你的IDEA,这样就少了思考的过程,还是要先分析一下,要有自己的理解,这样才有进步,授之以鱼不如授之以渔,思想才是最重要的!咱们要做一个有思想的,要根据需求提出问题,然后解决问题。

1.博客实体类

分析:

问:博客实体类需要设置哪些变量呢?

答:数据库中设计的属性:主键(id)、博客标题(title)、博客内容(content)、首图地址(firstPicture)、标记是否原创(flag)、浏览次数(views)、评论次数(commentCount)、是否开启赞赏(appreciation)、是否开启版权(shareStatement)、是否开启评论(commentabled)、是否发布(published)、是否推荐(recommend)、创建时间(createTime)、更新时间(updateTime)、博客描述(description)

问:这些属性就够了吗?还记不记得在之前设计表结构的时候,博客和分类是多对一的关系,博客和用户是多对一的关系,博客和评论是一对多的关系,在这些对应关系中,博客表和分类表、用户表、评论表都有关联,这里就要涉及到Mybatis的多对一和一对多的关系了,因此在实体类中也要体现出来,要如何体现呢?

答:除了上述变量外,还需要分类(type)、用户(user)、评论集合(comments)以及分类id(typeId)、用户id(userId),用来实现Mybatis的多表查询和相关功能。

在entity目录下创建Blog博客实体类,代码如下(省略get、set和toString方法):

package com.star.entity;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

/**

  • @Description: 博客实体类

  • @Date: Created in 10:10 2020/6/1

  • @Author: ONESTAR

  • @QQ群: 530311074

  • @URL: https://onestar.newstar.net.cn/

*/

public class Blog {

private Long id;

private String title;

private String content;

private String firstPicture;

private String flag;

private Integer views;

private Integer commentCount;

private boolean appreciation;

private boolean shareStatement;

private boolean commentabled;

private boolean published;

private boolean recommend;

private Date createTime;

private Date updateTime;

private String description;

private Type type;

private User user;

private Long typeId;

private Long userId;

private List comments = new ArrayList<>();

}

2.分类实体类

分析:

问:分类实体类需要设置哪些变量呢?

答:一个id和一个分类名称不就可以了吗。

问:可以吗?还记不记得在之前设计表结构的时候,博客和分类是多对一的关系,一篇博客对应一个分类,一个分类可以对应多篇博客,这里就要涉及到Mybatis的多对一和一对多的关系了,因此在实体类中也要体现出来,要如何体现呢?

答:除了id和分类名称外,还需要定义“博客”变量

在entity目录下创建Type分类实体类,代码如下(省略get、set和toString方法):

package com.star.entity;

import java.util.ArrayList;

import java.util.List;

/**

  • @Description: 分类实体类

  • @Date: Created in 17:26 2020/5/31

  • @Author: ONESTAR

  • @QQ群: 530311074

  • @URL: https://onestar.newstar.net.cn/

*/

public class Type {

private Long id;

private String name;

private List blogs = new ArrayList<>();

}

3.评论实体类

分析:

问:评论实体类需要设置哪些变量呢?

答:数据库中设计的属性:主键(id)、昵称(nickname)、邮箱(email)、头像(avatar)、评论内容(content)、创建时间(createTime)、博客id(blogId)、父评论id(parentCommentId)、是否为管理员评论(adminComment)

问:够了吗?同样,在之前表结构设计的时候,博客和评论是一对多的关系,评论和回复是一对多的关系,在实体类中当然也要体现出来,要如何体现呢?

答:除了上述变量外,还需要回复评论集合(replyComments)用来存储回复信息、父评论昵称(parentNickname)用来设置父级评论的id以及父评论(parentComment)用来显示父级评论姓名

在entity目录下创建Comment评论实体类,代码如下(省略get、set和toString方法):

package com.star.entity;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

/**

  • @Description: 评论实体类

  • @Date: Created in 11:12 2020/6/1

  • @Author: ONESTAR

  • @QQ群: 530311074

  • @URL: https://onestar.newstar.net.cn/

*/

public class Comment {

private Long id;

private String nickname;

private String email;

private String content;

private String avatar;

private Date createTime;

private Long blogId;

private Long parentCommentId;

private boolean adminComment;

//回复评论

private List replyComments = new ArrayList<>();

private Comment parentComment;

private String parentNickname;

}

4.留言实体类

留言和评论是一样的,只是少了博客id(blogId)变量,这里就不做分析,直接给出代码(省略get、set和toString方法):

package com.star.entity;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

/**

  • @Description: 留言实体类

  • @Date: Created in 11:44 2020/6/1

  • @Author: ONESTAR

  • @QQ群: 530311074

  • @URL: https://onestar.newstar.net.cn/

*/

public class Message {

private Long id;

private String nickname;

private String email;

private String content;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

Java架构学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
oom: 33%;" />

最后

Java架构学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
[外链图片转存中…(img-VKr32ECY-1713406008166)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建SpringBoot项目 首先,在IDE中创建一个SpringBoot项目,选择Maven作为构建工具,并在pom文件中添加SpringBoot和mybatis-plus的依赖。 2. 配置数据库连接 在application.properties文件中添加数据库连接信息,包括url、username、password等。 ``` spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 创建实体类和mapper 创建实体类和对应的mapper接口,使用mybatis-plus的注解来简化SQL操作。例如: ```java @Data @TableName("user") // 表名 public class User { @TableId(value = "id", type = IdType.AUTO) // id字段自增 private Long id; @TableField("name") // name字段 private String name; @TableField("age") // age字段 private Integer age; } ``` ```java public interface UserMapper extends BaseMapper<User> { } ``` 4. 编业务逻辑 根据具体需求编业务逻辑代码,例如实现对用户的增删改查操作。使用mybatis-plus的CRUD方法来简化操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean saveUser(User user) { return userMapper.insert(user) > 0; } @Override public boolean updateUser(User user) { return userMapper.updateById(user) > 0; } @Override public boolean deleteUser(Long id) { return userMapper.deleteById(id) > 0; } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 5. 编Controller层 编Controller层代码,处理HTTP请求并调用对应的业务逻辑方法。使用@RestController注解来标注该类是一个REST风格的控制器。 ```java @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/user") public Result saveUser(@RequestBody User user) { boolean result = userService.saveUser(user); return result ? Result.success() : Result.error("保存用户失败"); } @PutMapping("/user") public Result updateUser(@RequestBody User user) { boolean result = userService.updateUser(user); return result ? Result.success() : Result.error("更新用户失败"); } @DeleteMapping("/user/{id}") public Result deleteUser(@PathVariable Long id) { boolean result = userService.deleteUser(id); return result ? Result.success() : Result.error("删除用户失败"); } @GetMapping("/user/{id}") public Result getUserById(@PathVariable Long id) { User user = userService.getUserById(id); return Result.success(user); } @GetMapping("/user") public Result getUserList() { List<User> userList = userService.getUserList(); return Result.success(userList); } } ``` 6. 测试接口 启动SpringBoot应用程序,使用Postman等工具测试接口,确认接口功能正常。 以上便是搭建SpringBoot mybatis-plus项目的基本流程。通过使用mybatis-plus来简化SQL操作,可以极大的提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值