IDEA+Spring Boot+MyBatis+shiro+Layui+Mysql智能平台管理系统

news2024/12/22 23:16:55

IDEA+JavaSpring Boot+MyBatis+shiro+Layui+Mysql智能平台管理系统

  • 一、系统介绍
    • 1.环境配置
  • 二、系统展示
    • 1.登录
    • 2.注册
    • 3.发帖
    • 4.留言
    • 5.提交问卷
    • 6.展示公告
    • 7.查看文章
    • 8.管理员登录
    • 9.管理员管理
    • 10.用户管理
    • 11.问卷管理
    • 12.问卷结果管理
    • 13.帖子分类管理
    • 14.数据分析统计
    • 15.公告管理
    • 16.帖子管理
    • 17.友情链接管理
    • 18.留言管理
  • 三、部分代码
    • ArticleMapper.java
    • ArticleController.java
    • Article.java
  • 四、其他
    • 获取源码


一、系统介绍

本系统实现了智能平台管理系统,pc端用户可以登录,注册,发帖,留言,提交问卷,展示公告,查看文章,管理端实现了管理员登录,管理员管理, 管理员管理,用户管理 ,问卷管理,问卷结果管理 ,帖子分类管理 ,数据分析统计 ,公告管理,帖子管理 ,友情链接管理,留言管理

1.环境配置

JDK版本:1.8
Mysql:5.7
Tomcat:9.0

二、系统展示

1.登录

在这里插入图片描述

2.注册

在这里插入图片描述

3.发帖

在这里插入图片描述

4.留言

在这里插入图片描述

5.提交问卷

在这里插入图片描述

6.展示公告

在这里插入图片描述

7.查看文章

在这里插入图片描述

8.管理员登录

在这里插入图片描述

9.管理员管理

在这里插入图片描述

10.用户管理

在这里插入图片描述

11.问卷管理

在这里插入图片描述

12.问卷结果管理

在这里插入图片描述

13.帖子分类管理

在这里插入图片描述

14.数据分析统计

在这里插入图片描述

15.公告管理

在这里插入图片描述

16.帖子管理

在这里插入图片描述

17.友情链接管理

在这里插入图片描述

18.留言管理

在这里插入图片描述

三、部分代码

ArticleMapper.java

package com.module.mapper;

import com.module.pojo.Article;

import java.util.List;
import java.util.Map;

/**
 * 帖子 数据层
 *
 * @author administrator
 * @date
 */
public interface ArticleMapper {
    /**
     * 数据统计查询
     *
     * @param map
     * @return
     */
    public List<Map> countData(Map map);

    /**
     * 查询帖子信息
     *
     * @param id 帖子ID
     * @return 帖子信息
     */
    public Article selectArticleById(Integer id);

    /**
     * 查询帖子列表
     *
     * @param Article 帖子信息
     * @return 帖子集合
     */
    public List<Article> selectArticleList(Article article);

    /**
     * 查询所有帖子
     *
     * @return 帖子列表
     */
    public List<Article> selectAll(Map map);

    /**
     * 新增帖子
     *
     * @param Article 帖子信息
     * @return 结果
     */
    public int insertArticle(Article article);

    /**
     * 修改帖子
     *
     * @param article 帖子信息
     * @return 结果
     */
    public int updateArticle(Article article);

    /**
     * 批量修改
     *
     * @param list
     * @return
     */
    public int batchUpdate(List<Article> list);

    /**
     * 删除帖子
     *
     * @param id 帖子ID
     * @return 结果
     */
    public int deleteArticleById(Integer id);

    /**
     * 批量删除帖子
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int batchDeleteArticle(Integer[] ids);

    /**
     * 批量添加
     *
     * @param list
     * @return
     */
    public int batchAdd(List<Article> list);

}

ArticleController.java

package com.module.controller;

import com.github.pagehelper.Page;
import com.module.mapper.ArticleMapper;
import com.module.mapper.SorttypeMapper;
import com.module.pojo.Article;
import com.module.pojo.Sorttype;
import com.module.util.ResultUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 页面请求控制  帖子管理
 */
@Controller
public class ArticleController {
    @Autowired
    ArticleMapper articleMapper;
    @Autowired
    SorttypeMapper sorttypeMapper;



    /**
     * 跳转到列表页面
     *
     * @return
     */
    @RequestMapping("manage/articleList")
    public String articleList() {
        return "manage/article/articleList";
    }

    /**
     * 跳转到添加页面
     *
     * @return
     */
    @RequestMapping("manage/addArticle")
    public String addArticle(Model model) {
        List<Sorttype> sorttypeList = sorttypeMapper.selectAll(null);
        model.addAttribute("sorttypeList", sorttypeList);
        return "manage/article/saveArticle";
    }

    /**
     * 跳转到修改页面
     *
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("manage/editArticle")
    public String editArticle(Integer id, Model model) {
        List<Sorttype> sorttypeList = sorttypeMapper.selectAll(null);
        model.addAttribute("sorttypeList", sorttypeList);
        Article article = articleMapper.selectArticleById(id);
        model.addAttribute("article", article);
        return "manage/article/saveArticle";
    }

    /**
     * 查看详情页面
     *
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("manage/articleInfo")
    public String articleInfo(Integer id, Model model) {
        Article article = articleMapper.selectArticleById(id);
        model.addAttribute("article", article);
        return "manage/article/articleInfo";
    }


    /**
     * 分页查询
     *
     * @param page  默认第一页
     * @param limit 默认每页显示10条
     * @return
     */
    @RequestMapping("manage/queryArticleList")
    @ResponseBody
    public ResultUtil getCarouseList(Integer page, Integer limit, String keyword) {
        if (null == page) { //默认第一页
            page = 1;
        }
        if (null == limit) { //默认每页10条
            limit = 10;
        }
        Map map = new HashMap();
        if (StringUtils.isNotEmpty(keyword)) {
            map.put("keyword", keyword);
        }
        Page pageHelper = PageHelper.startPage(page, limit, true);
        pageHelper.setOrderBy(" id desc ");
        List<Article> list = articleMapper.selectAll(map);
        PageInfo<Article> pageInfo = new PageInfo<Article>(list);  //使用mybatis分页插件
        ResultUtil resultUtil = new ResultUtil();
        resultUtil.setCode(0);  //设置返回状态0为成功
        resultUtil.setCount(pageInfo.getTotal());  //获取总记录数目 类似count(*)
        resultUtil.setData(pageInfo.getList());    //获取当前查询出来的集合
        return resultUtil;
    }

    /**
     * 插入记录
     */
    @RequestMapping("manage/saveArticle")
    @ResponseBody
    public ResultUtil saveArticle(Article article, HttpSession session) {
        Date nowTime = new Date();
        article.setCreatetime(nowTime);
        try {
            articleMapper.insertArticle(article);
            return ResultUtil.ok("添加帖子成功");
        } catch (Exception e) {
            return ResultUtil.error("添加帖子出错,稍后再试!");
        }
    }

    /**
     * 更新记录
     */
    @RequestMapping("manage/updateArticle")
    @ResponseBody
    public ResultUtil updateArticle(Article article, HttpSession session) {
        Date nowTime = new Date();
        article.setCreatetime(nowTime);
        try {
            articleMapper.updateArticle(article);
            return ResultUtil.ok("修改帖子成功");
        } catch (Exception e) {
            return ResultUtil.error("修改帖子出错,稍后再试!");
        }
    }


    /**
     * 根据ID删除
     *
     * @param id
     * @return
     */
    @RequestMapping("manage/deleteArticle")
    @ResponseBody
    public ResultUtil deleteArticleById(Integer id) {
        try {
            articleMapper.deleteArticleById(id);
            return ResultUtil.ok("删除帖子成功");
        } catch (Exception e) {
            return ResultUtil.error("删除帖子出错,稍后再试!");
        }
    }

    /**
     * 根据ID批量删除
     *
     * @param idsStr
     * @return
     */
    @RequestMapping("manage/deletesArticle")
    @ResponseBody
    public ResultUtil deletesArticle(String idsStr) {
        try {
            if (!StringUtils.isBlank(idsStr)) {
                String[] ids = idsStr.split(",");
                for (String id : ids) {
                    articleMapper.deleteArticleById(Integer.parseInt(id));
                }
            }
            return ResultUtil.ok("批量删除帖子成功");
        } catch (Exception e) {
            return ResultUtil.error("删除帖子出错,稍后再试!");
        }
    }


}

Article.java

package com.module.pojo;

import java.util.Date;


/**
 * 帖子表 article
 *
 * @author administrator
 * @date
 */
public class Article {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Integer id;
    /**
     * 标题
     */
    private String title;
    /**
     * 大纲
     */
    private String outline;
    /**
     * 帖子主图
     */
    private String picurl;
    /**
     * 帖子分类
     */
    private String type;
    /**
     * 帖子内容
     */
    private String content;
    /**
     * 帖子作者
     */
    private String author;
    /**
     * 点击数
     */
    private Integer hits;
    /**
     * 帖子状态
     */
    private String state;
    /**
     * 备注
     */
    private String intro;
    /**
     * 创建时间
     */
    private Date createtime;

    /**
     * 设置:ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取:ID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置:标题
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 获取:标题
     */
    public String getTitle() {
        return title;
    }

    /**
     * 设置:大纲
     */
    public void setOutline(String outline) {
        this.outline = outline;
    }

    /**
     * 获取:大纲
     */
    public String getOutline() {
        return outline;
    }

    /**
     * 设置:帖子主图
     */
    public void setPicurl(String picurl) {
        this.picurl = picurl;
    }

    /**
     * 获取:帖子主图
     */
    public String getPicurl() {
        return picurl;
    }

    /**
     * 设置:帖子分类
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取:帖子分类
     */
    public String getType() {
        return type;
    }

    /**
     * 设置:帖子内容
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 获取:帖子内容
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置:帖子作者
     */
    public void setAuthor(String author) {
        this.author = author;
    }

    /**
     * 获取:帖子作者
     */
    public String getAuthor() {
        return author;
    }

    /**
     * 设置:点击数
     */
    public void setHits(Integer hits) {
        this.hits = hits;
    }

    /**
     * 获取:点击数
     */
    public Integer getHits() {
        return hits;
    }

    /**
     * 设置:帖子状态
     */
    public void setState(String state) {
        this.state = state;
    }

    /**
     * 获取:帖子状态
     */
    public String getState() {
        return state;
    }

    /**
     * 设置:备注
     */
    public void setIntro(String intro) {
        this.intro = intro;
    }

    /**
     * 获取:备注
     */
    public String getIntro() {
        return intro;
    }

    /**
     * 设置:创建时间
     */
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }

    /**
     * 获取:创建时间
     */
    public Date getCreatetime() {
        return createtime;
    }
}


四、其他

获取源码

点击以下链接获取源码。

Java+Swing+Mysql实现学生宿舍管理系统

Java+Swing+Txt实现自助款机系统

Java+Swing+Mysql自助存取款机系统

Java+Swing+mysql5实现学生成绩管理系统(带分页)

Java+Swing+Mysql实现超市商品管理系统源码

Java+Swing+Mysql实现通讯录管理系统源码

Java+Swing+Mysql实现图书管理系统源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/718148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Node.js知识梳理(二)——进阶

以下内容来自对《从前端到全栈》一书的学习记录~ 学习的时候用的是V16.20.0&#xff0c;18之后的语法差别还是有的~ 请求优化 我们在请求资源的时候&#xff0c;是需要做优化的&#xff0c;这里的优化涉及到了缓存。浏览器的缓存策略有两种&#xff1a; 强缓存协商缓存 关于…

分解整体:将整体式架构转换为微服务的容器化之旅

传统上&#xff0c;软件应用程序是使用单体架构开发的&#xff0c;其中所有应用程序组件都紧密交织在一起&#xff0c;并作为一个单元进行部署。随着软件应用变得更为复杂&#xff0c;组织开始依赖分布式系统&#xff0c;单体架构的限制开始变得更加明显。容器化被引入作为解决…

关于连接数据库时只能使用localhost而不能使用IP连接的问题解决办法

出现&#xff1a;java.sql.SQLException: null, message from server: "Host DESKTOP-H84MBU3 is not allowed to connect to this MySQL server"问题 解决办法&#xff1a; 1、打开数据库操作命令窗口 2、修改user表中 "root" 所对应的 "host&q…

JMeter之IP欺骗技术(模拟不同的IP地址并发请求)

目录 前言&#xff1a; 第一步&#xff1a;在负载机上绑定IP地址 第二步&#xff1a;点击高级&#xff0c;添加伪造的IP地址 第三步&#xff1a;新增IP地址复制到文本 第四步&#xff1a;新建参数化请求 第五步&#xff1a;新建压力测试脚本 第六步&#xff1a;配置线程…

【Mysql】事务原理与优化最佳实践(四)

前言 我们的数据库一般都会并发执行多个事务&#xff0c;多个事务可能会并发的对相同的一批数据进行增 删改查操作&#xff0c;可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题&#xff0c;为了解决多事务并发问题&…

【C】函数

目录 【1】函数是什么 【2】C语言中函数的分类 【2.1】库函数 【2.2】如何学会使用库函数 【2.3】自定义函数 【3】函数的参数 【3.1】实际参数&#xff08;实参&#xff09; 【3.2】形式参数&#xff08;形参) 【4】函数的调用 【4.1】传值调用 【4.2】传址调用 【…

kubernetes环境搭建及部署

一、kubernetes 概述 1、kubernetes 基本介绍 kubernetes&#xff0c;简称 K8s&#xff0c;是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源 的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes 的目标是让部署容器化的 应用简单并且高效…

【Python】文件

文章目录 一. 什么是文件二. 文件路径三. 打开文件四. 关闭文件五. 写文件1. 清空写2. 追加写 六. 读文件1. 使用 read 方法读取2. 使用 for 循环按行读取3. 使用 readlines 方法读取整个文件的内容 七. 上下文管理器1. 什么是上下文管理器&#xff1f;2. 为什么要有上下文管理…

ESP8266模块MQTT AT Commands 发送 json字符串

ESP8266 wifi模块介绍 ESP8266EX 由乐鑫公司开发&#xff0c;提供了⼀套⾼度集成的 Wi-Fi SoC 解决⽅案&#xff0c;其低功耗、紧凑设计和⾼稳定性可以满⾜⽤户的需求。ESP8266EX 拥有完整的且⾃成体系的 Wi-Fi ⽹络功能&#xff0c;既能够独⽴应⽤&#xff0c;也可以作为从机…

ORA-31664: unable to construct unique job name when defaulted

某个环境备份不足空间问题处理后&#xff0c;手动执行expdp备份的脚本&#xff0c;报错如下 Export: Release 11.2.0.4.0 - Production on Tue Jul 4 11:46:14 2023 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle D…

【海量数据挖掘/数据分析】之 决策树模型(决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例)

【海量数据挖掘/数据分析】之 决策树模型&#xff08;决策树模型、决策树构成、决策树常用算法、决策树性能要求、信息增益、信息增益计算公式、决策树信息增益计算实例&#xff09; 目录 【海量数据挖掘/数据分析】之 决策树模型&#xff08;决策树模型、决策树构成、决策树常…

Windows环境部署MySQL_5.7的安装、测试连接以及卸载全过程实操手册

前言&#xff1a; 前面记录了双环境的oracle的安装卸载及相关测试评估&#xff0c;这里记录下 MySQL5.7社区免费版的部署手册。 什么是 MySQL MySQL 是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB 公司开发&#xff0c;目前属于Oracle 公司。MySQL 是一种关系型数…

window.open()实现PDF预览

效果图如下&#xff1a; 页面使用: window.open(strUrl) 参数说明如下图:

深度学习笔记之Transformer(四)铺垫:LayerNormalization

深度学习笔记之Transformer——LayerNormalization 引言回顾&#xff1a;批标准化问题描述问题处理 层标准化批标准化无法处理的问题 引言 在介绍 Transformer \text{Transformer} Transformer模型架构之前&#xff0c;首先介绍 Transformer \text{Transformer} Transformer的…

linux 环境下ElasticSearch 7.1.6.3、kibana-7.16.3安装

安装包放入百度网盘&#xff0c;自取 链接&#xff1a;https://pan.baidu.com/s/1Uh9pKFoaz9qi4CE4_GmlOA?pwdroky 提取码&#xff1a;roky 快速演示下安装操作&#xff1a; ElasticSearch 7.1.6.3&#xff1a; 1.上传至服务器相应目录下 我传到的/home目录下&#xff0…

0、技术选型

技术选型参考&#xff1a; 系统数据流程图 框架发行版本选型 1&#xff09;如何选择Apache/CDH/HDP版本&#xff1f; &#xff08;1&#xff09;Apache&#xff1a;运维麻烦&#xff0c;组件间兼容性需要自己调研。&#xff08;一般大厂使用&#xff0c;技术实力雄厚&#xf…

【随笔】jupyter notebook启动打开文件出现:500 : Internal Server Error

错误&#xff1a; 看log有 module ‘mistune’ has no attribute BlockGrammar’错误 打开文件有500 : Internal Server Error 解决方法&#xff1a; pip install --upgrade jupyterhub pip install --upgrade --user nbconvertconda环境可以&#xff1a; conda install nbc…

使用Python开发ChatGPT AI工具助手(ChatCatsy):4天快速开发指南

引言&#xff1a; ChatGPT是一种基于人工智能的对话生成模型&#xff0c;它可以用于开发聊天机器人、虚拟助手等应用。本教程将指导您在3天内使用Python开发一个ChatGPT AI工具助手。无需担心&#xff0c;即使您是初学者&#xff0c;也可以轻松跟随本指南完成项目。 第一天&a…

Java-数据结构(三)-List:ArrayList和LinkedList及其相关面试题

目录 一、引言二、ArrayList2.1 ArrayList是什么&#xff1f;2.2 ArrayList的历史由来2.3 ArrayList的使用好处2.4 ArrayList的底层原理2.5 ArrayList的操作方法及代码示例 三、LinkedList3.1 LinkedList是什么&#xff1f;3.2 LinkedList的历史由来3.3 LinkedList的使用好处3.…