Springboot+vue+小程序+基于微信小程序的在线学习平台

一、项目介绍
  

        基于Spring Boot+Vue+小程序的在线学习平台从实际情况出发,结合当前年轻人的学习环境喜好来开发。基于Spring Boot+Vue+小程序的在线学习平台在语言上使用Java语言进行开发,在数据库存储方面使用的MySQL数据库,开发工具是IDEA。
       功能丰富,项目保证质量,需要可以最底下查看QQ二维码找我私聊。运行讲解服务均可有尝提供,即便你是零基础,也能听懂的优秀讲解老师。
功能:
1.个人中心修改密码里查看个人信息
2.教师管理
3.学生管理
4.课程视频管理
5.课程签到管理
6.课程问题管理
7.课程答题管理
8.答题成绩管理
9.课程类型管理
10.课程资料管理
11.通知信息管理
12.加入课程管理
13.学习论坛管理
14.课程考试管理
15.试题管理
16.系统简介,轮播图,平台公告,关于我们管理
17.考试管理

关键词:商品;购物;Spring Boot框架;MySQL

二、开发环境


开发语言:Java
框架:springboot + vue + 小程序
JDK版本:JDK1.8
数据库:mysql
数据库工具:Navicat11
开发软件:idea/vscode/eclipse
Maven包:Maven

表结构示例:

表名:kechengxinxi

功能:课程信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengbianhao

varchar

200

课程编号

kechengmingcheng

varchar

200

课程名称

kechengleixing

varchar

200

课程类型

keshi

varchar

200

课时

xuefen

varchar

200

学分

kechengtupian

longtext

4294967295

课程图片

shangkeshijian

varchar

200

上课时间

shangkedidian

varchar

200

上课地点

jiaoshigonghao

varchar

200

教师工号

jiaoshixingming

varchar

200

教师姓名

kechengjieshao

longtext

4294967295

课程介绍

表名:discusskechengshipin

功能:课程视频评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表名:kechengqiandao

功能:课程签到

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengbianhao

varchar

200

课程编号

kechengmingcheng

varchar

200

课程名称

kechengtupian

longtext

4294967295

课程图片

kechengleixing

varchar

200

课程类型

jiaoshigonghao

varchar

200

教师工号

jiaoshixingming

varchar

200

教师姓名

zhangcheng

varchar

200

章程

xuehao

varchar

200

学号

xueshengxingming

varchar

200

学生姓名

xueshengshouji

varchar

200

学生手机

zhuanye

varchar

200

专业

banji

varchar

200

班级

qiandaoshijian

datetime

签到时间

kechengxinde

longtext

4294967295

课程心得

代码示例一,课程信息代码

package com.controller;import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.KechengxinxiEntity;
import com.entity.view.KechengxinxiView;import com.service.KechengxinxiService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;/*** 课程信息* 后端接口*/
@RestController
@RequestMapping("/kechengxinxi")
public class KechengxinxiController {@Autowiredprivate KechengxinxiService kechengxinxiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, KechengxinxiEntity kechengxinxi,HttpServletRequest request) {String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("jiaoshi")) {kechengxinxi.setJiaoshigonghao((String) request.getSession().getAttribute("username"));}EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, KechengxinxiEntity kechengxinxi,HttpServletRequest request) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();PageUtils page = kechengxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengxinxi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list(KechengxinxiEntity kechengxinxi) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));return R.ok().put("data", kechengxinxiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(KechengxinxiEntity kechengxinxi) {EntityWrapper<KechengxinxiEntity> ew = new EntityWrapper<KechengxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(kechengxinxi, "kechengxinxi"));KechengxinxiView kechengxinxiView = kechengxinxiService.selectView(ew);return R.ok("查询课程信息成功").put("data", kechengxinxiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id) {KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);return R.ok().put("data", kechengxinxi);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id) {KechengxinxiEntity kechengxinxi = kechengxinxiService.selectById(id);return R.ok().put("data", kechengxinxi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());//ValidatorUtils.validateEntity(kechengxinxi);kechengxinxiService.insert(kechengxinxi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxi.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());//ValidatorUtils.validateEntity(kechengxinxi);kechengxinxiService.insert(kechengxinxi);return R.ok();}/*** 修改*/@RequestMapping("/update")@Transactionalpublic R update(@RequestBody KechengxinxiEntity kechengxinxi, HttpServletRequest request) {kechengxinxiService.updateById(kechengxinxi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids) {kechengxinxiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,@PathVariable("type") String type, @RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if (type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if (map.get("remindstart") != null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH, remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if (map.get("remindend") != null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH, remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<KechengxinxiEntity> wrapper = new EntityWrapper<KechengxinxiEntity>();if (map.get("remindstart") != null) {wrapper.ge(columnName, map.get("remindstart"));}if (map.get("remindend") != null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if (tableName.equals("jiaoshi")) {wrapper.eq("jiaoshigonghao", (String) request.getSession().getAttribute("username"));}int count = kechengxinxiService.selectCount(wrapper);return R.ok().put("count", count);}
}

 <template v-if="showFlag"><el-form class="center-form-pv" :style='{"margin":"0 0 30px"}' :inline="true" :model="searchForm"><el-row :style='{"padding":"10px","borderRadius":"3px","background":"#fff","display":"block"}'><div :style='{"margin":"0 10px 0 0","display":"inline-block"}'><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">课程名称</label><el-input v-model="searchForm.kechengmingcheng" placeholder="课程名称" clearable></el-input></div><div :style='{"margin":"0 10px 0 0","display":"inline-block"}' class="select" label="课程类型"prop="kechengleixing"><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">课程类型</label><el-select @change="kechengleixingChange" clearable v-model="searchForm.kechengleixing"placeholder="请选择课程类型"><el-option v-for="(item,index) in kechengleixingOptions" v-bind:key="index" :label="item":value="item"></el-option></el-select></div><div :style='{"margin":"0 10px 0 0","display":"inline-block"}'><label:style='{"margin":"0 10px 0 0","color":"#666","display":"inline-block","lineHeight":"40px","fontSize":"14px","fontWeight":"500","height":"40px"}'class="item-label">教师姓名</label><el-input v-model="searchForm.jiaoshixingming" placeholder="教师姓名" clearable></el-input></div><el-button:style='{"border":"1px solid #5494cb","cursor":"pointer","padding":"0 34px","outline":"none","margin":"0 0px 0 10px","color":"#fff","borderRadius":"4px","background":"-webkit-linear-gradient(top,#66a4d8,#337ab7)","width":"auto","fontSize":"14px","height":"40px"}'type="success" @click="search()">查询</el-button></el-row><el-row :style='{"margin":"20px 0 20px 0","display":"flex"}'><el-button:style='{"border":"0","cursor":"pointer","padding":"0 24px","margin":"0 10px 0 0","outline":"none","color":"#fff","borderRadius":"4px","background":"rgba(64, 158, 255, 1)","width":"auto","fontSize":"14px","height":"40px"}'v-if="isAuth('kechengxinxi','新增')" type="success" @click="addOrUpdateHandler()">新增</el-button><el-button:style='{"border":"0","cursor":"pointer","padding":"0 24px","margin":"0 10px 0 0","outline":"none","color":"#fff","borderRadius":"4px","background":"rgba(255, 0, 0, 1)","width":"auto","fontSize":"14px","height":"40px"}'v-if="isAuth('kechengxinxi','删除')" :disabled="dataListSelections.length <= 0" type="danger"@click="deleteHandler()">删除</el-button></el-row></el-form><!-- <div> --><el-table class="tables":stripe='false':style='{"padding":"0","borderColor":"#eee","borderRadius":"5px","borderWidth":"1px 0 0 1px","background":"#fff","width":"100%","borderStyle":"solid"}'v-if="isAuth('kechengxinxi','查看')":data="dataList"v-loading="dataListLoading"@selection-change="selectionChangeHandler"><el-table-column :resizable='true' type="selection" align="center" width="50"></el-table-column><el-table-column :resizable='true' :sortable='false' label="索引" type="index" width="50"/><el-table-column :resizable='true' :sortable='false'prop="kechengbianhao"label="课程编号"><template slot-scope="scope">{{ scope.row.kechengbianhao }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="kechengmingcheng"label="课程名称"><template slot-scope="scope">{{ scope.row.kechengmingcheng }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="kechengleixing"label="课程类型"><template slot-scope="scope">{{ scope.row.kechengleixing }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="keshi"label="课时"><template slot-scope="scope">{{ scope.row.keshi }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="xuefen"label="学分"><template slot-scope="scope">{{ scope.row.xuefen }}</template></el-table-column><el-table-column :resizable='true' :sortable='false' prop="kechengtupian" width="200" label="课程图片"><template slot-scope="scope"><div v-if="scope.row.kechengtupian"><img v-if="scope.row.kechengtupian.substring(0,4)=='http'" :src="scope.row.kechengtupian.split(',')[0]"width="100" height="100"><img v-else :src="$base.url+scope.row.kechengtupian.split(',')[0]" width="100" height="100"></div><div v-else>无图片</div></template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="shangkeshijian"label="上课时间"><template slot-scope="scope">{{ scope.row.shangkeshijian }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="shangkedidian"label="上课地点"><template slot-scope="scope">{{ scope.row.shangkedidian }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="jiaoshigonghao"label="教师工号"><template slot-scope="scope">{{ scope.row.jiaoshigonghao }}</template></el-table-column><el-table-column :resizable='true' :sortable='false'prop="jiaoshixingming"label="教师姓名"><template slot-scope="scope">{{ scope.row.jiaoshixingming }}</template></el-table-column><el-table-column width="300" label="操作"><template slot-scope="scope"><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if=" isAuth('kechengxinxi','查看')" type="success" size="mini"@click="addOrUpdateHandler(scope.row.id,'info')">详情</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','加入课程')" type="success" size="mini"@click="jiarukechengCrossAddOrUpdateHandler(scope.row,'cross','','','')">加入课程</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','发布视频')" type="success" size="mini"@click="kechengshipinCrossAddOrUpdateHandler(scope.row,'cross','','','')">发布视频</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','发布资料')" type="success" size="mini"@click="kechengziliaoCrossAddOrUpdateHandler(scope.row,'cross','','','')">发布资料</el-button><el-button:style='{"border":"1px solid #00a0f0","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/161eb7a46f5d4cd19d68a1386174d662.png) #00aaff no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if=" isAuth('kechengxinxi','修改')" type="primary" size="mini"@click="addOrUpdateHandler(scope.row.id)">修改</el-button><el-button:style='{"border":"1px solid #3ca512","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/ca1c191554d24b108bc94f4a2046d636.png) #41b314 no-repeat 5px 8px","width":"auto","fontSize":"12px","height":"32px"}'v-if="isAuth('kechengxinxi','查看评论')" type="primary" size="mini"@click="disscussListHandler(scope.row.id)">查看评论</el-button><el-button:style='{"border":"0","cursor":"pointer","padding":"0 10px 0 24px","margin":"3px 6px 3px 0","outline":"none","color":"#fff","borderRadius":"4px","background":"url(http://codegen.caihongy.cn/20221011/68bd264a8e4341c6aa5409f871d590d0.png) #d9534f no-repeat 5px 8px","width":"auto","fontSize":"14px","height":"32px"}'v-if="isAuth('kechengxinxi','删除') " type="danger" size="mini" @click="deleteHandler(scope.row.id)">删除</el-button></template></el-table-column></el-table><el-pagination@size-change="sizeChangeHandle"@current-change="currentChangeHandle":current-page="pageIndex"background:page-sizes="[10, 20, 30, 50]":page-size="pageSize":layout="layouts.join()":total="totalPage"prev-text="<"next-text=">":hide-on-single-page="true":style='{"width":"100%","padding":"0","margin":"20px 0 0","whiteSpace":"nowrap","color":"#333","fontWeight":"500"}'></el-pagination><!-- </div> --></template>

三.关于我的联系方式      

                                

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

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

相关文章

APScheduler定时器使用:django中使用apscheduler,使用mysql做存储后端

一、基本环境 python版本&#xff1a;3.8.5 APScheduler3.10.4 Django3.2.7 djangorestframework3.15.1 SQLAlchemy2.0.29 PyMySQL1.1.0二、django基本设置 2.1、新增一个app 该app用来写apscheduler相关的代码 python manage.py startapp gs_scheduler 2.2、修改配置文件s…

关于NPM的Registry(npm源)

查看当前npm源&#xff1a; npm config get registry 官方源和淘宝源&#xff1a; ①官方源&#xff1a; npm config set registryhttp://registry.npmjs.org ②淘宝源&#xff1a; npm config set registryhttps://registry.npmmirror.com 据了解&#xff1a; 淘宝以前的源…

Ollamallama

Olllama 直接下载ollama程序&#xff0c;安装后可在cmd里直接运行大模型&#xff1b; llama 3 meta 开源的最新llama大模型&#xff1b; 下载运行 1 ollama ollama run llama3 2 github 下载仓库&#xff0c;需要linux环境&#xff0c;windows可使用wsl&#xff1b; 接…

C++浮点数format时的舍入问题

C浮点数format时的舍入问题 首先有这样一段代码&#xff1a; #include <iostream> #include <stdio.h> using namespace std;int main() {cout << " main begin : " << endl;printf("%.0f \r\n", 1.5);printf("%.0f \r\n&…

吴恩达2022机器学习专项课程(一)8.2 解决过拟合

目录 解决过拟合&#xff08;一&#xff09;&#xff1a;增加数据解决过拟合&#xff08;二&#xff09;&#xff1a;减少特征特征选择缺点 解决过拟合&#xff08;三&#xff09;&#xff1a;正则化总结 解决过拟合&#xff08;一&#xff09;&#xff1a;增加数据 收集更多训…

JAVA学习.Java异步任务.Futire与CompletableFuture

在Java中&#xff0c;异步任务可以通过Future和CompletableFuture来实现。 1. Future: - Future是在Java 5中引入的&#xff0c;用于表示异步计算的结果。 - 通过submit方法将任务提交给ExecutorService后&#xff0c;会返回一个Future对象&#xff0c;通过该对象可以获取任…

【c++】模板编程解密:C++中的特化、实例化和分离编译

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们来学习模版的进阶部分 目录 1.非类型模版参数按需实例化 2.模版的特化函数模版特化函数模版的特化类模版全特化偏特化 3.分离编译模版分离编译 1.非类…

综合性练习(后端代码练习4)——图书管理系统

目录 一、准备工作 二、约定前后端交互接口 1、需求分析 2、接口定义 &#xff08;1&#xff09;登录接口 &#xff08;2&#xff09;图书列表接口 三、服务器代码 &#xff08;1&#xff09;创建一个UserController类&#xff0c;实现登录验证接口 &#xff…

网络应用层之(6)L2TP协议详解

网络应用层之(6)L2TP协议 Author: Once Day Date: 2024年5月1日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…

Apollo Dreamview+之播放离线数据包

前提条件 完成 Dreamview 插件安装&#xff0c;参见 Studio 插件安装 。 操作步骤 您可以通过包管理和源码两种方式快速体验离线数据包播放操作。其中进入 docker 环境和启动 dreamview 的命令有所区别&#xff0c;请您按照命令进行操作。 步骤一&#xff1a;启动并打开 Dr…

C++学习第十四课:运算符类型与运算符重载

C学习第十四课&#xff1a;运算符类型与运算符重载 在C中&#xff0c;运算符重载是一种使得自定义类型&#xff08;如类对象&#xff09;能够使用C内建运算符的能力。运算符重载允许程序员定义运算符对用户定义类型的特殊行为&#xff0c;这增加了程序的可读性和自然表达能力。…

PaLmTac嵌入软体手手掌的视触觉传感器

触觉是感知和操作之间的桥梁。触觉信息对于手部行为反馈和规划具有重要意义。软体手的柔性特性在人机交互、生物医学设备和假肢等方面具有潜在应用的优势。本文提出了一种名为 PaLmTac的嵌入软体手手掌的视触觉传感器&#xff08;vision-based tactile sensor, VBTS&#xff09…

学习mysql相关知识记录

执行一条select语句&#xff0c;期间发生了什么&#xff1f; MySQL的执行流程&#xff1a; 连接器 TCP连接 查询缓存 很鸡肋被取消 解析SQL 解析器 语法分析词法分析 执行SQL 预处理器 检查是否存在将 select * 中的 * 符号&#xff0c;扩展为表上的所有列 优化器 优化器主要…

LeetCode 198—— 打家劫舍

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题使用动态规划求解&#xff0c;假设 d p [ i ] [ 0 ] dp[i][0] dp[i][0] 代表不偷窃第 i i i 个房屋可以获得的最高金额&#xff0c;而 d p [ i ] [ 1 ] dp[i][1] dp[i][1] 代表偷窃第 i i i 个房屋可以获…

Bluetooth Profile 蓝牙协议栈总结

GAP-Generic Access Profile 控制设备广播和连接 GAP profile 的目的是描述&#xff1a; Profile rolesDiscoverability modes and proceduresConnection modes and proceduresSecurity modes and procedures 设备连接过程 LE中GAP有4种角色&#xff1a;BroadcasterObserv…

关于npm命令

我们知道nodejs安装后&#xff0c;用npm命令来安装管理依赖包&#xff0c;npm默认源是https://registry.npmjs.org 国内访问可能不够快&#xff0c;所以大家一般会配置使用国内镜像源&#xff0c;比如https://registry.npmmirror.com &#xff0c;这样可能访问和下载会快一些。…

RTMP 直播推流 Demo(二)—— 音频推流与视频推流

音视频编解码系列目录&#xff1a; Android 音视频基础知识 Android 音视频播放器 Demo&#xff08;一&#xff09;—— 视频解码与渲染 Android 音视频播放器 Demo&#xff08;二&#xff09;—— 音频解码与音视频同步 RTMP 直播推流 Demo&#xff08;一&#xff09;—— 项目…

vue计算属性是什么 怎么选择?

写在computed对象中的属性&#xff0c;本质上是一个方法&#xff0c;不过使用时依旧当属性来使用 虽然模板语法使用非常便利&#xff0c;但是它是被设计成用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护 无论计算属性还是methos&#xff0c;这两种实现方式的…

抽象类和接口的区别你知道吗

抽象类和接口是Java中两种重要的机制&#xff0c;它们都用于实现多态性和代码的灵活性&#xff0c;但在某些方面有着不同的特点。下面我将详细介绍抽象类和接口的区别&#xff0c;并通过示例进行说明。 抽象类&#xff08;Abstract Class&#xff09; 定义&#xff1a; 抽象类…

暴雨服务器引领信创算力新潮流

去年大模型的空前发展&#xff0c;人工智能也终于迎来了属于自己的“文艺复兴”&#xff0c;众多的模型相继发布&#xff0c;继而催生了整个行业对于智能算力需求的激增。 市场需求与技术驱动仿佛现实世界的左右脚&#xff0c;催动着世界文明的齿轮向前滚动。在全球经济角逐日…