功能分析

社区首页主要是显示数据库里面的所有的帖子数据也就是 discuss_post 表里面的数据,但是由于我们数据内容较多,所以还需要进行分页处理。
而其实呢,整个过程就是一次请求的执行过程,而我们采用的是 MVC 处理流程,一次请求到达先到达 Controller 层,Controller 层调用 Server 层提供的方法,Server 层再掉 DAO 层封装好的数据操作的方法。

开发步骤

依赖引入

首先我们知道这样的一个请求执行流程是需要连接到数据库的,我们采用的数据持久化又是 Mybatis 所以我们要引入对应的依赖:

compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.19'
compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.1.1'

properties文件配置

对于 Mysql 和 Mybatis 来说,我们需要自定义一些参数配置,如 Mysql 的连接配置,Mybatis 的配置文件、对应实体类地址声明等。

# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
spring.datasource.username=***
spring.datasource.password=***
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000
# MybatisProperties
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.spring.community2.entity
mybatis.configuration.useGeneratedKeys=true
mybatis.configuration.mapUnderscoreToCamelCase=true

代码开发

首先我们先开发社区首页,显示前十个帖子。根据上面的请求执行流程,我们的开发顺序就逆顺序开发,底层的数据操作写好了再写对应的业务层,最后再写视图层。

数据访问层

因为要读取对应的 discuss_post 表里面的内容,所以我们要定义一个 entity 类,里面的参数与 Mysql 表里面的参数进行一一对应:
DiscussPost 实体:

package com.spring.community2.entity;
import java.util.Date;
public class DiscussPost {private int id;private int userId;private String title;private String content;private int type;private int status;private Date createTime;private int commentCount;private double score;public int getId() {return id;}@Overridepublic String toString() {return "DiscussPost{" +"id=" + id +", userId=" + userId +", title='" + title + '\'' +", content='" + content + '\'' +", type=" + type +", status=" + status +", createTime=" + createTime +", commentCount=" + commentCount +", score=" + score +'}';}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public void setId(int id) {this.id = id;}public int getUserId() {return userId;}public void setUserId(int userId) {this.userId = userId;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public int getType() {return type;}public void setType(int type) {this.type = type;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public int getCommentCount() {return commentCount;}public void setCommentCount(int commentCount) {this.commentCount = commentCount;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}

定义好实体,我们就可以定义对应的数据操作了,因为我们是利用 Mybatis,所以我们只需要声明对应的接口,在接口里面确定对应的函数操作,具体的实现我们放在 .xml 文件中实现:
DiscussPostMapper 接口:

package com.spring.co

讨论区交流平台项目 - 社区首页开发相关推荐

  1. 【仿牛客网笔记】初识Spring Boot,开发社区首页-开发社区首页

    get/set SelectDiscussPosts方法实现的是分页的方法,分页通过两个参数,一个是这一页的起始行的行号offset,另一个是这一页最多显示多少数据limit.拼接是将着两个拼接到一起 ...

  2. 大江论坛服务器怎么又在维护,大江论坛主讨论区

    大江论坛主讨论区交流平台提供了生活中方方面面的资讯信息,涵盖了民生生活.新闻热点.学习教育.娱乐报道等信息,而且这些全部都是最新资源,提供的话题也非常的精彩,大家可以通过聊天交流平台还分享探讨自己的看 ...

  3. (仿牛客论坛项目)01 - 开发社区首页

    文章目录 前言 1.做项目的步骤 2.开发社区首页功能分步 2.1 User 类 2.2 UserMapper 接口 2.3 UserMapper 映射文件 2.4 编写测试类 3.开发社区首页,显示 ...

  4. Vue项目supermall仿蘑菇街详解(一)首页开发详解

    前言 本文章是对coderwhy vue项目仿蘑菇街做的一个步骤详解,此文章包含个人详解及主要步骤,由于代码较多较杂,就不放这了,代码大部分就用截图了 一.安装及创建 安装node,vue-cli,创 ...

  5. 【Vue项目】二、去哪儿网APP——首页开发

    首页开发中的重难点 重点思想:页面组件化 页面组件化下的组件引入及使用 flex:1 使用iconfont图标 使用vue-awesome-swiper实现轮播效果 实现带有分页器的轮播 实现有分页效 ...

  6. 【构建】react打造你的第一个Bilibili首页开发项目

    [构建]react打造你的第一个Bilibili首页开发项目 简 介 Hello 小极客们,如果觉得本文还不错,记得点个赞或者给个 star,你们的赞和 star 是我编写更多更丰富开源项目的动力![ ...

  7. 六十五、完成Vue项目去哪儿网App首页开发(来源:慕课网)

    2020/10/21. 周三.今天又是奋斗的一天. @Author:Runsen @Date:2020/10/21 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是共 ...

  8. 仿牛客论坛-开发社区首页-3

    开发社区首页 显示首页 过程理解 Dao Service Controller 实现分页 过程理解 Controller 显示首页 过程理解 目标:显示帖子 原料:数据库内帖子数据 步骤: 按要求获取 ...

  9. Java牛客项目课_仿牛客网讨论区_第八章

    文章目录 第八章.项目发布与总结 8.1. 单元测试 8.2.项目监控 8.3.项目部署 宝塔面板.yum.rpm.压缩包 安装 unzip.Java1.8.Maven.MySQL.Redis.Kaf ...

最新文章

  1. 华为云苏嘉:如何整合预训练模型和知识图谱做医疗推理?
  2. ==与equals 的使用比较
  3. cmd mysql log_如何使用mysqlbinlog工具?
  4. 工作337:pc-ele-ment联查问题
  5. 网络数据的背后-网络日志的分析指标【转】
  6. 大数据(2)---Hadoop由哪几部分组成?
  7. [线筛五连]线筛约数和
  8. 共享单车数据集_共享单车数据的数据可视化
  9. 五脏六腑在脸上的反射区图片_人体五大反射区的有图详解。
  10. NVME格式硬盘SSD安装WIN7蓝屏(0x000007B)解决方法
  11. Mac(3) Parallels Desktop 安装 Windows10专业版
  12. sendgrid html text,使用SendGrid发送电子邮件
  13. 艾美捷FLIVO探针:用于细胞活体凋亡检测,助力科研!
  14. XSS能有什么危害?
  15. 如何让网站在360搜索结果中显示“官网”标志?
  16. 上千个角色人物素材推荐!最实用的2d游戏素材
  17. djyvp计算机电缆参数,DJYVP DJYVP电缆的技术标准 计算机电缆技术参数
  18. 使用 Windows 脚本文件 (.wsf)
  19. iphone手机型号对应iOS系统版本及设备标签
  20. 推荐5款好用的固定资产管理系统

热门文章

  1. c语言中triplet的作用,C语言数据结构-三元数组Triplet
  2. 物联网技术与应用、传感器原理与应用
  3. 计算机组成原理基础: 图灵机与冯诺依曼结构
  4. Call to undefined method Illuminate\Database\Query\Builder::trashed()
  5. 腾讯地图展示标记点位及自定义弹框,数据填充,右侧悬浮tab
  6. 智能灯2022年全球行业分析报告
  7. 新书推介:关宏志丨《路上的远影》
  8. 富文本编辑器kindEditor简单教程
  9. 谈一谈最近关闭的Kindle人论坛
  10. 3. 交易开拓者-TB公式(二)