【计算机毕业设计】基于SpringBoot+Vue数据库原理教学案例案例库管理系统

博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、小程序、安卓app、大数据等设计与开发

精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

SpringBoot+Vue项目持续更新中

http://t.csdn.cn/1mgm8
🍅文末获取联系🍅

一、项目介绍 

数据库原理教学案例案例库管理系统,主要的模块包括管理员;首页、个人中心、管理员管理、基础数据管理、教学案例管理理、公告信息管理、老师管理、新闻信息管理、学生管理、轮播图信息、数据库管理,老师;首页、个人中心、教学案例管理、公告信息管理、新闻信息管理、学生管理,前台首页;首页、教学案例、公告信息、新闻信息、个人中心等功能。

二、项目主要技术 

开发语言:Java

使用框架:spring boot

前端技术:Vue 、css、element-ui、js

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven: apache-maven 3.8.1-bin

三、系统体系结构

该软件具有良好的应用前景,能够很好地解决数据库理论教学中的问题。这个系统的函数比较完整,可以看到下面的图表,这个系统的函数的构造见下图 

四、系统实现

教学案例

教学案例信息

教学案例管理理

数据库管理

老师教学案例管理

五、实现代码

 教学案例

/**
 * 教学案例
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/anli")
public class AnliController {
    private static final Logger logger = LoggerFactory.getLogger(AnliController.class);

    private static final String TABLE_NAME = "anli";

    @Autowired
    private AnliService anliService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private AnliCollectionService anliCollectionService;//教学案例收藏
    @Autowired
    private AnliLiuyanService anliLiuyanService;//教学案例留言
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private GonggaoService gonggaoService;//公告信息
    @Autowired
    private LaoshiService laoshiService;//老师
    @Autowired
    private NewsService newsService;//新闻信息
    @Autowired
    private XueshengService xueshengService;//学生
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("学生".equals(role))
            params.put("xueshengId",request.getSession().getAttribute("userId"));
        else if("老师".equals(role))
            params.put("laoshiId",request.getSession().getAttribute("userId"));
        params.put("anliDeleteStart",1);params.put("anliDeleteEnd",1);
        CommonUtil.checkMap(params);
        PageUtils page = anliService.queryPage(params);

        //字典表数据转换
        List<AnliView> list =(List<AnliView>)page.getList();
        for(AnliView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        AnliEntity anli = anliService.selectById(id);
        if(anli !=null){
            //entity转view
            AnliView view = new AnliView();
            BeanUtils.copyProperties( anli , view );//把实体数据重构到view中
            //级联表 老师
            //级联表
            LaoshiEntity laoshi = laoshiService.selectById(anli.getLaoshiId());
            if(laoshi != null){
            BeanUtils.copyProperties( laoshi , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "laoshiId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setLaoshiId(laoshi.getId());
            }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody AnliEntity anli, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,anli:{}",this.getClass().getName(),anli.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("老师".equals(role))
            anli.setLaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<AnliEntity> queryWrapper = new EntityWrapper<AnliEntity>()
            .eq("laoshi_id", anli.getLaoshiId())
            .eq("anli_name", anli.getAnliName())
            .eq("anli_guanjianzi", anli.getAnliGuanjianzi())
            .eq("anli_video", anli.getAnliVideo())
            .eq("zan_number", anli.getZanNumber())
            .eq("cai_number", anli.getCaiNumber())
            .eq("anli_types", anli.getAnliTypes())
            .eq("shangxia_types", anli.getShangxiaTypes())
            .eq("anli_delete", 1)
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        AnliEntity anliEntity = anliService.selectOne(queryWrapper);
        if(anliEntity==null){
            anli.setZanNumber(1);
            anli.setCaiNumber(1);
            anli.setAnliClicknum(1);
            anli.setShangxiaTypes(1);
            anli.setAnliDelete(1);
            anli.setInsertTime(new Date());
            anli.setCreateTime(new Date());
            anliService.insert(anli);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody AnliEntity anli, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,anli:{}",this.getClass().getName(),anli.toString());
        AnliEntity oldAnliEntity = anliService.selectById(anli.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("老师".equals(role))
//            anli.setLaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        if("".equals(anli.getAnliPhoto()) || "null".equals(anli.getAnliPhoto())){
                anli.setAnliPhoto(null);
        }
        if("".equals(anli.getAnliVideo()) || "null".equals(anli.getAnliVideo())){
                anli.setAnliVideo(null);
        }
        if("".equals(anli.getAnliFile()) || "null".equals(anli.getAnliFile())){
                anli.setAnliFile(null);
        }
        if("".equals(anli.getAnliContent()) || "null".equals(anli.getAnliContent())){
                anli.setAnliContent(null);
        }

            anliService.updateById(anli);//根据id更新
            return R.ok();
    }



    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<AnliEntity> oldAnliList =anliService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        ArrayList<AnliEntity> list = new ArrayList<>();
        for(Integer id:ids){
            AnliEntity anliEntity = new AnliEntity();
            anliEntity.setId(id);
            anliEntity.setAnliDelete(2);
            list.add(anliEntity);
        }
        if(list != null && list.size() >0){
            anliService.updateBatchById(list);
        }

        return R.ok();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一季春秋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值