SSM框架(spring+spring mvc+mybatis)+Mysql实现的星星少儿教育系统(功能包含前台:首页少儿早教知识、资讯、英语课程、视频、专家,后台包括文章管理、来源管理、返回首页等)

SSM框架(spring+spring mvc+mybatis)+Mysql实现的星星少儿教育系统

本系统为了解决少儿教育线上的发展,分为前后台,前台对少儿资讯、少儿的英语课程、视频、音乐、专家、知识做了分类汇总展示,后台对文章资讯、类别、来源等进行管理,大大提高了少儿教育的科学化、效率化、知识普及最大化。

(文末查看完整源码)

实现功能截图

小星星少儿教育系统
首页
请添加图片描述
请添加图片描述
少儿资讯内容
请添加图片描述
英语知识
请添加图片描述
英语音乐
请添加图片描述
英语视频
请添加图片描述
英语视频小猪佩奇播放
请添加图片描述
英语专家
请添加图片描述
英语专家介绍
请添加图片描述
后台登录
请添加图片描述
后台首页
请添加图片描述
后台文章管理
请添加图片描述
文章添加
请添加图片描述
文章类别管理
请添加图片描述
文章类别添加
请添加图片描述
文章来源管理
请添加图片描述
文章来源添加
请添加图片描述

系统功能

本少儿教育系统实现了以下功能:
前台
1、首页
2、早教知识
3、英语课程
4、英语音乐
5、英语视频
6、英语知识
7、英语专家
后台
8、登录
9、文章管理
10、文章添加
11、文章来源管理
12、文章来源添加
13、文章类别管理
14、文章类别添加
15、返回前台首页

使用技术

数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:spring+spring mvc+mybatis+bootstrap+jquery

代码

实体类
Source.java

package com.smart.domain;

/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
public class Source {

  private long id;
  private String sourceName;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getSourceName() {
    return sourceName;
  }

  public void setSourceName(String sourceName) {
    this.sourceName = sourceName;
  }

}

Admin.java

package com.smart.domain;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */

public class Admin {

  private long id;
  private String userName;
  private String passWord;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }


  public String getPassWord() {
    return passWord;
  }

  public void setPassWord(String passWord) {
    this.passWord = passWord;
  }

}

service层
SourceService.java

package com.smart.service;

import com.smart.dao.SourceDao;
import com.smart.domain.Source;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Service
public class SourceService {

    @Autowired
    private SourceDao sourceDao;

    /*添加*/
   public void addSource(Source source){
        sourceDao.addSource(source);
    }
    /*修改*/
    public void updateSource(Source source){
        sourceDao.updateSource(source);
    }
    /*删除*/
    public void deleteSource(Source source){
        sourceDao.deleteSource(source);
    }
    /*查找*/
    public Source selectSource(Source source){
        return sourceDao.selectSource(source);
    }

    public List getAll(){
        return sourceDao.getAll();
    }
}

AdminService.java

package com.smart.service;

import com.smart.dao.AdminDao;
import com.smart.domain.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Service
public class AdminService {
    @Autowired
    private AdminDao adminDao;

    /*添加*/
    public void addAdmin(Admin admin){

    }
    /*修改*/
    public void updateAdmin(Admin admin){

    }
    /*删除*/
    public void deleteAdmin(Admin admin){

    }
    /*查找*/
    public Admin selectAdmin(Admin admin){
        return adminDao.selectAdmin(admin);
    }
}

controller层
AdminController.java

package com.smart.controller;

import com.smart.dao.AdminDao;
import com.smart.dao.ContentDao;
import com.smart.dao.SourceDao;
import com.smart.dao.TypeDao;
import com.smart.domain.Admin;
import com.smart.domain.Content;
import com.smart.domain.Source;
import com.smart.domain.Type;
import com.smart.service.AdminService;
import com.smart.service.ContentService;
import com.smart.service.SourceService;
import com.smart.service.TypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Controller
public class AdminController {

    @Autowired
    private SourceService sourceService;

    @Autowired
    private TypeService typeService;

    @Autowired
    private ContentService contentService;

    @Autowired
    private AdminService adminService;

    @RequestMapping("test")
    public String toTest(){return "test";}


    @RequestMapping("toLogin")
    public String toLogin(){return "/admin/login";}

    @RequestMapping("login")
    public ModelAndView Login(Admin admin){
        ModelAndView modelAndView=new ModelAndView();
        Admin admin2=adminService.selectAdmin(admin);
        if (admin2!=null){
            modelAndView.setViewName("/admin/manager");
        }else {
            modelAndView.setViewName("/admin/login");
            modelAndView.addObject("tips","<script>alert('用户名或密码错误')</script>");
        }
        return modelAndView;
    }

    @RequestMapping("toMain")
    public String toAdminMain(){
        return "/admin/manager";
    }

    @RequestMapping("toaddLaiyuan")
    public String toaddLaiyuan(){
        return "/admin/addLaiyuan";
    }

    @RequestMapping("toAddType")
    public String toAddType(){
        return "/admin/addType";
    }

    @RequestMapping("toContent")
    public ModelAndView toContent(){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("/admin/content");
        List list=contentService.getAll();
        modelAndView.addObject("contents",list);
        return modelAndView;
    }

    @RequestMapping("toaddContent")
    public ModelAndView toaddContent(){
        ModelAndView modelAndView=new ModelAndView();
        List types=typeService.getAll();
        List sources=sourceService.getAll();
        modelAndView.addObject("types",types);
        modelAndView.addObject("sources",sources);
        modelAndView.setViewName("/admin/addContent");
        return modelAndView;
    }

    @RequestMapping("tolaiyuan")
    public ModelAndView tolaiyuan(){
        ModelAndView modelAndView =new ModelAndView();
        List list=sourceService.getAll();
        modelAndView.setViewName("/admin/laiyuan");
        modelAndView.addObject("sources",list);
        return modelAndView;
    }

    @RequestMapping("toType")
    public ModelAndView toType(){
        List lists=typeService.getAll();
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("types",lists);
        modelAndView.setViewName("/admin/type");
        return modelAndView;
    }

    @RequestMapping("addLaiyuan")
    public ModelAndView addLaiyuan(Source source){
        ModelAndView modelAndView=new ModelAndView();
        sourceService.addSource(source);
        modelAndView.addObject("tips", "<script>alert('添加成功!')</script>");
        modelAndView.setViewName("/admin/addLaiyuan");
        return modelAndView;
    }

    @RequestMapping("addType")
    public ModelAndView addType(Type type){
        ModelAndView modelAndView=new ModelAndView();
        typeService.addType(type);
        modelAndView.addObject("tips","<script>alert('添加成功!')</script>");
        modelAndView.setViewName("/admin/addType");
        return modelAndView;
    }

    @RequestMapping("addContent")
    public ModelAndView addContent(MultipartFile file,String editorValue,Content content) throws IOException {
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("redirect:toContent");
        System.out.println(content.getTitle());
        System.out.println(content.getFromName());
        //保存数据库的路径
        String sqlPath = null;
        //定义文件保存的本地路径
        String localPath="";
        //定义 文件名
        String filename=null;
        if(!file.isEmpty()){
            //生成uuid作为文件名称 防止重复上传
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            //获得文件类型(可以判断如果不是图片,禁止上传)
            String contentType=file.getContentType();
            //获得文件后缀名
            String suffixName=contentType.substring(contentType.indexOf("/")+1);
            //得到 文件名
            filename=uuid+"."+suffixName;

            //根据后缀判断文件的

            switch (suffixName){
                case "mp3":localPath="E:\\WorkShop\\EED\\src\\main\\webapp\\static\\music\\";
                break;
                case "mp4": localPath="E:\\WorkShop\\EED\\src\\main\\webapp\\static\\video\\";
                break;
                case "jpg":
                case  "png":localPath="E:\\WorkShop\\EED\\src\\main\\webapp\\static\\picture\\";
                break;
                default:localPath="E:\\WorkShop\\EED\\src\\main\\webapp\\static\\other\\";
            }

            //文件保存路径
            file.transferTo(new File(localPath+filename));
            content.setUrlContext(filename);
        }
        content.setText(editorValue);
        contentService.addContent(content);
        return modelAndView;
    }

    @RequestMapping("deleteOne")
    public String deleteOne(int id){
        contentService.deleteContent(id);
        return "redirect:toContent";
    }

    @RequestMapping("updateOne")
    public ModelAndView updateOne(int id){
        Content content=contentService.selectContent(id);
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("content",content);
        modelAndView.setViewName("/admin/updateContent");
        return  modelAndView;
    }
}

MainController.java

package com.smart.controller;


import com.smart.domain.Content;
import com.smart.service.ContentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;
/**
 * 公众号:程序猿矛盾体
 * 微信:Code2Life2
 */
@Controller
public class MainController {

    @Autowired
    private ContentService contentService;


    @RequestMapping("toMusic")
    public String toMusic(){
        return "testMusic";
    }

    @RequestMapping("toCommonContent")
    public ModelAndView toCommonContent(int id){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("commonContent");
        Content content=contentService.selectContent(id);
        /*访问量加1*/
        content.setVisitNum(content.getVisitNum()+1);
        contentService.updateContent(content);
        /*判断文章类型*/
        /*视频类型为1 音乐类型为2 其他为0*/
        int contentType=0;
        switch (content.getTypeName()){
            case "英语视频":contentType=1;
            break;
            case "英语音乐":contentType=2;
                break;
             default:   contentType=0;
        }
        modelAndView.addObject("contentType",contentType);
        modelAndView.addObject("content",content);
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        return  modelAndView;
    }


    @RequestMapping("toVideoContent")
    public ModelAndView toVideoContent(int id){ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("videoContent");
        Content content=contentService.selectContent(id);
        /*访问量加1*/
        content.setVisitNum(content.getVisitNum()+1);
        contentService.updateContent(content);
        modelAndView.addObject("content",content);
        return  modelAndView;}

    @RequestMapping("index")
    public ModelAndView toIndex(){
        /*获取早教网知识排行*/
        ModelAndView modelAndView=new ModelAndView();
        List tops=contentService.selectContentByTypeTop("英语知识");
        modelAndView.addObject("tops",tops);
        modelAndView.setViewName("index");
        /*获取专家信息*/
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        return modelAndView;}

    @RequestMapping("kecheng")
    public ModelAndView toKecheng(){ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("zhishi");
        modelAndView.addObject("type","英语课程");
        List list=contentService.selectContentByType("英语课程");
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        modelAndView.addObject("zhishis",list);
        return modelAndView;}

    @RequestMapping("zhishi")
    public ModelAndView toZhishi(){
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("zhishi");
        modelAndView.addObject("type","英语知识");
        List list=contentService.selectContentByType("英语知识");
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        modelAndView.addObject("zhishis",list);
        return modelAndView;
    }

    @RequestMapping("shipin")
    public ModelAndView toShipin(){ ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("zhishi");
        modelAndView.addObject("type","英语视频");
        List list=contentService.selectContentByType("英语视频");
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        modelAndView.addObject("zhishis",list);
        return modelAndView;}

    @RequestMapping("yinyue")
    public ModelAndView toYinyue(){ ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("zhishi");
        modelAndView.addObject("type","英语音乐");
        List list=contentService.selectContentByType("英语音乐");
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        modelAndView.addObject("zhishis",list);
        return modelAndView;}

    @RequestMapping("zhuanjia")
    public ModelAndView toZhuanjia(){ ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("zhishi");
        modelAndView.addObject("type","英语专家");
        List list=contentService.selectContentByType("英语专家");
        List tops=contentService.selectContentByTypeTop("英语知识");
        List zhuanjia=contentService.selectContentByType("英语专家");
        modelAndView.addObject("experts",zhuanjia);
        modelAndView.addObject("tops",tops);
        modelAndView.addObject("zhishis",list);
        return modelAndView;}

    @RequestMapping("detail")
    public String toDetail(){return "detail";}

    @RequestMapping("report404")
    public String toReport404(){
        return "report404";
    }

}

写在最后

如果运行代码中遇到问题,或者需要完整源码和报告,可以加博主V交流:Code2Life2

觉得有用,记得一键三连哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Java EE互联网轻量级框架整合开发的其中一种方式是使用SSM框架Spring MVCSpringMyBatis)和Redis。 首先,SSM框架是一种非常流行的互联网开发框架,它结合了Spring MVCSpringMyBatis的优势。Spring MVC提供了MVC模式的实现,可以帮助我们构建灵活、可扩展的Web应用程序;Spring是一个轻量级的IOC(Inversion of Control)容器,并提供了丰富的企业级功能,如事务管理、安全性等;而MyBatis是一个简单易用的持久层框架,提供了ORM(Object Relational Mapping)和数据库访问的功能。 其次,Redis是一种开源的内存数据库,也是一种缓存数据库。它支持多种数据结构,如字符串、列表、哈希、集合等,以及一些高级功能,如发布/订阅、事务等。Redis的高速读写能力和丰富的功能使其成为互联网应用中常用的缓存数据库。在SSM框架中,我们可以使用Redis来缓存数据库查询结果、session数据等,以提高系统的读写性能和响应速度。 在整合开发中,SSM框架通常会负责处理用户请求和返回响应,通过Spring的IOC容器来管理和注入依赖的对象,而MyBatis则负责与数据库进行交互。我们可以通过配置文件来整合SSM框架和Redis,让它们协同工作。例如,我们可以在Spring的配置文件中配置MyBatis的数据源和Mapper接口,以及Redis的连接池和缓存配置;在Spring MVC的配置文件中配置控制器、视图解析器和拦截器等;同时,我们还可以使用Redis的API来进行缓存数据的读写操作。 总之,通过整合SSM框架和Redis,我们可以充分发挥它们各自的优势,构建高性能、可扩展的互联网应用程序。这种整合开发方式可以帮助我们简化开发流程、提高开发效率,并提供更好的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anmu4200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值