Java 阶段三 SSM微博项目练习

微博项目(具体代码见资源)

项目概述

该项目是一款社交媒体应用,用户可以在平台上发表短文信息,分享自己的想法、心情和生活。微博的用户群体广泛,包括个人、娱乐明星、公司、政府官方等。

项目功能

  1. 用户管理

    用户可以注册微博账号,登录登出微博网站。

  2. 发布微博

    用户可以在平台上发布文本形式的微博。

  3. 查看微博

    用户可以查看所有的微博。

  4. 评论功能

    用户可以对所有微博进行评论,并且查看某条微博的所有评论。

数据库设计

  • 本项目共计3张表
    • 用户表:存储用户信息;
    • 微博表:存储发布的微博信息;
    • 评论表:存储每条微博的评论。
  • 表关系
    • 用户表和微博表:一对多,一个用户可以发布多条微博,一条微博只能归属于一个用户;
    • 用户表和评论表:一对多,一个用户可以发布多条评论,一条评论只能归属于一个用户;
    • 微博表和评论表:一对多,一条微博下可以有多条评论,一条评论只能归于与一条微博。
  • 表字段设计
    • 用户表user
      • 用户编号:id
      • 用户名:username
      • 密码:password
      • 昵称:nickname
      • 注册时间:created
    • 微博表weibo
      • 微博编号:id
      • 微博内容:content
      • 发布时间:created
      • 用户编号:user_id
    • 评论表comment
      • 评论编号:id
      • 评论内容:content
      • 评论时间:created
      • 用户编号:user_id
      • 微博编号:weibo_id

数据初始化

1.建库建表及插入数据

  • 库名:blog

  • SQL语句

    DROP DATABASE IF EXISTS blog;
    CREATE DATABASE IF NOT EXISTS blog DEFAULT CHARSET=UTF8;
    USE blog;
    CREATE TABLE IF NOT EXISTS user(
        id BIGINT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(50),
        password VARCHAR(100),
        nickname VARCHAR(50),
        created TIMESTAMP
    )CHARSET=UTF8;
    
    CREATE TABLE IF NOT EXISTS weibo(
        id BIGINT PRIMARY KEY AUTO_INCREMENT,
    	content VARCHAR(255),
        created TIMESTAMP,
        user_id INT
    )CHARSET=UTF8;
    
    CREATE TABLE IF NOT EXISTS comment(
    	id BIGINT PRIMARY KEY AUTO_INCREMENT,
        content VARCHAR(255),
        created TIMESTAMP,
        user_id INT,
        weibo_id INT
    )CHARSET=UTF8;
    
    USE blog;
    DELETE FROM user;
    DELETE FROM weibo;
    DELETE FROM comment;
    INSERT INTO user VALUES (100, 'Lucy', '123456', 'lucy', '1987-10-16 00:00:00');
    INSERT INTO user VALUES (101, 'Tom', '123456', 'tom', '1987-10-16 00:00:00');
    INSERT INTO user VALUES (102, 'Jim', '123456', 'jim', '1987-10-16 00:00:00');
    
    INSERT INTO weibo VALUES (200, 'lucy的第1条微博', '2000-01-01 00:00:00', 100);
    INSERT INTO weibo VALUES (201, 'lucy的第2条微博', '2000-01-01 00:00:00', 100);
    INSERT INTO weibo VALUES (202, 'tom的第1条微博', '2000-01-01 00:00:00', 101);
    INSERT INTO weibo VALUES (203, 'tom的第2条微博', '2000-01-01 00:00:00', 101);
    INSERT INTO weibo VALUES (204, 'tom的第3条微博', '2000-01-01 00:00:00', 101);
    
    INSERT INTO comment VALUES (300, 'lucy对第1条微博的评论', '2008-01-01 00:00:00', 100, 200);
    INSERT INTO comment VALUES (301, 'tom对第1条微博的评论', '2008-01-01 00:00:00', 101, 200);
    INSERT INTO comment VALUES (302, 'lucy对第2条微博的评论', '2008-01-01 00:00:00', 100, 201);
    INSERT INTO comment VALUES (303, 'tom对第2条微博的评论', '2008-01-01 00:00:00', 101, 201);
    INSERT INTO comment VALUES (304, 'jim对第2条微博的评论', '2008-01-01 00:00:00', 102, 201);
    

2 项目准备

  • 创建工程 _04MVC-WEIBO

    勾选3个依赖;

    SpringBoot版本选择 2.7.14;

  • application.properties中配置数据库连接信息及xml文件映射路径

    spring.datasource.url=jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Shanghai&characterEncoding=utf8
    spring.datasource.username=root
    spring.datasource.password=root
    # 设置MyBatis框架的映射(Mapper)配置文件的位置
    mybatis.mapper-locations=classpath:mappers/*.xml
    
  • 启动工程

01.用户模块

注册功能

在这里插入图片描述

接口地址:/v1/users/reg

请求方式:POST

请求数据类型:application/json

响应数据类型:int

请求示例:

{
  "nickname": "左大凯",
  "password": "123456",
  "username": "左凯"
}

请求参数 UserRegDTO:

参数名称参数说明请求类型是否必须数据类型
userRegDTOuserRegDTObodytrueUserRegDTO
  nickname昵称truestring
  password密码truestring
  username用户名truestring

响应参数:

整型 int

响应示例:

参数名称参数说明类型
1注册成功int
2用户名被占用int

登录功能

在这里插入图片描述

接口地址:/v1/users/login

请求方式:POST

请求数据类型:application/json

响应数据类型:int

请求示例 UserLoginDTO:

{
  "password": "123456",
  "username": "左大凯"
}

请求参数:

参数名称参数说明请求类型是否必须数据类型
userLoginDTOuserLoginDTObodytrueUserLoginDTO
  password密码truestring
  username用户名truestring

响应参数:

整型 int

响应示例:

参数名称参数说明类型
1登录成功int
2密码错误int
3用户名错误int

获取当前用户

1)说明

进入首页时,会自动向后端发请求,获取当前用户的登录状态,分为以下两种情况:

如果未登录,则显示注册登录页面;

如果是登录状态,则显示欢迎xxx回来,并显示退出登录按钮。

  • 未登录显示首页面

    在这里插入图片描述

  • 登录显示首页面

    在这里插入图片描述

2)接口文档

接口地址:/v1/users/currentUser

请求方式:GET

请求数据类型:application/x-www-form-urlencoded

响应数据类型:userVO

请求参数:

暂无

响应参数:

UserVO 不为null,则说明处于登录状态

UserVO 为null,则说明处于未登录状态

参数名称参数说明类型
id用户idinteger(int32)
nickname用户昵称string
password用户密码string

响应示例 UserVO:

null

{
	"id": 0,
	"nickname": "",
	"password": ""
}

登出功能

在这里插入图片描述

接口地址:/v1/users/logout

请求方式:GET

请求数据类型:application/x-www-form-urlencoded

响应数据类型:见响应参数

请求参数:

暂无

响应参数:

暂无

02.微博模块

发布微博功能

在这里插入图片描述

接口地址:/v1/weibo/insert

请求方式:POST

请求数据类型:application/json

响应数据类型:int

请求示例 WeiboDTO:

{
  "content": "微博内容"
}

请求参数:

参数名称参数说明请求类型是否必须数据类型
weiboDTOweiboDTObodytrueWeiboDTO
  content微博内容truestring

响应参数:

整型 int

响应示例:

参数名称参数说明类型
1发布成功int
2未登录,发布失败int

首页微博列表功能

在这里插入图片描述

接口地址:/v1/weibo/selectIndex

请求方式:GET

请求数据类型:application/x-www-form-urlencoded

响应数据类型:见响应参数

请求参数:

暂无

响应参数 List:

参数名称参数说明类型
content微博内容string
id微博idinteger(int32)
nickname用户昵称string

响应示例 List:

[
	{
		"content": "",
		"id": 0,
		"nickname": ""
	}
]

微博详情功能

在这里插入图片描述

接口地址:/v1/weibo/selectById

请求方式:GET

请求数据类型:application/x-www-form-urlencoded

响应数据类型:见响应参数

请求参数:

参数名称参数说明请求类型是否必须数据类型
id微博idquerytrueinteger(int32)

响应参数 WeiboDetailVO:

参数名称参数说明类型
content微博内容string
created微博发布时间string(date-time)
id微博idinteger(int32)
nickname用户昵称string

响应示例 WeiboDetailVO:

{
	"content": "",
	"created": "",
	"id": 0,
	"nickname": ""
}

03.评论模块

发布评论功能

在这里插入图片描述

接口地址:/v1/comment/insert

请求方式:POST

请求数据类型:application/json

响应数据类型:int

请求示例:

{
  "content": "果然高手都在评论区",
  "weiboId": 1
}

请求参数 CommentDTO:

参数名称参数说明请求类型是否必须数据类型
commentDTOcommentDTObodytrueCommentDTO
  content评论内容truestring
  weiboId微博idtrueinteger(int32)

响应参数:

整型 int

响应示例:

参数名称参数说明类型
1评论成功int
2未登录,评论失败int

获取评论功能

在这里插入图片描述

接口地址:/v1/comment/selectByWeiboId

请求方式:GET

请求数据类型:application/x-www-form-urlencoded

响应数据类型:见响应参数

请求参数:

参数名称参数说明请求类型是否必须数据类型
ididqueryfalseinteger(int32)

响应参数 List:

参数名称参数说明类型
content评论内容string
created评论发布时间string(date-time)
id评论idinteger(int32)
nickname用户昵称string

响应示例 List:

[
	{
		"content": "",
		"created": "",
		"id": 0,
		"nickname": ""
	}
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值