一、后端

实体类:

package org.jeecg.modules.bidding.entity;import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;/*** @Description: 公告管理* @Author: jeecg-boot* @Date:   2022-05-06* @Version: V1.0*/
@Data
@TableName("bid_notice")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="bid_notice对象", description="公告管理")
public class BidNotice implements Serializable {private static final long serialVersionUID = 1L;/**主键*/@TableId(type = IdType.ASSIGN_ID)@ApiModelProperty(value = "主键")private java.lang.String id;/**创建人*/@ApiModelProperty(value = "创建人")private java.lang.String createBy;/**创建日期*/@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")@ApiModelProperty(value = "创建日期")private java.util.Date createTime;/**更新人*/@ApiModelProperty(value = "更新人")private java.lang.String updateBy;/**更新日期*/@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")@ApiModelProperty(value = "更新日期")private java.util.Date updateTime;/**所属部门*/@ApiModelProperty(value = "所属部门")private java.lang.String sysOrgCode;/**标题*/@Excel(name = "标题", width = 15)@ApiModelProperty(value = "标题")private java.lang.String title;/**内容*/@Excel(name = "内容", width = 15)@ApiModelProperty(value = "内容")private java.lang.String content;/**是否置顶*/@Excel(name = "是否置顶", width = 15, dicCode = "notice_top")@Dict(dicCode = "notice_top")@ApiModelProperty(value = "是否置顶")private java.lang.String isTop;/**排序*/@Excel(name = "排序", width = 15)@ApiModelProperty(value = "排序")private java.lang.Integer sort;/**状态*/@Excel(name = "状态", width = 15, dicCode = "notice_status")@Dict(dicCode = "notice_status")@ApiModelProperty(value = "状态")private java.lang.String status;/**发布时间*/@Excel(name = "发布时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")@ApiModelProperty(value = "发布时间")private java.util.Date releaseDate;/**附件*/@Excel(name = "附件", width = 15)@ApiModelProperty(value = "附件")private java.lang.String annex;/**访问量*/@Excel(name = "访问量", width = 15)@ApiModelProperty(value = "访问量")private java.lang.Integer visit;
}

控制层:

package org.jeecg.modules.bidding.controller;import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.bidding.entity.BidNotice;
import org.jeecg.modules.bidding.service.IBidNoticeService;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;/*** @Description: 公告管理* @Author: jeecg-boot* @Date:   2022-05-06* @Version: V1.0*/
@Api(tags="公告管理")
@RestController
@RequestMapping("/bidding/bidNotice")
@Slf4j
public class BidNoticeController extends JeecgController<BidNotice, IBidNoticeService> {@Autowiredprivate IBidNoticeService bidNoticeService;/*** 分页列表查询** @param bidNotice* @param pageNo* @param pageSize* @param req* @return*/@AutoLog(value = "公告管理-分页列表查询")@ApiOperation(value="公告管理-分页列表查询", notes="公告管理-分页列表查询")@GetMapping(value = "/list")public Result<?> queryPageList(BidNotice bidNotice,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) {if(oConvertUtils.isNotEmpty(bidNotice.getTitle())){bidNotice.setTitle("*"+bidNotice.getTitle()+"*");}QueryWrapper<BidNotice> queryWrapper = QueryGenerator.initQueryWrapper(bidNotice, req.getParameterMap());Page<BidNotice> page = new Page<BidNotice>(pageNo, pageSize);queryWrapper.lambda().orderByAsc(BidNotice::getIsTop).orderByAsc(BidNotice::getSort);IPage<BidNotice> pageList = bidNoticeService.page(page, queryWrapper);return Result.OK(pageList);}/***   添加** @param bidNotice* @return*/@AutoLog(value = "公告管理-添加")@ApiOperation(value="公告管理-添加", notes="公告管理-添加")@PostMapping(value = "/add")public Result<?> add(@RequestBody BidNotice bidNotice) {int aCount = bidNoticeService.count(new LambdaQueryWrapper<BidNotice>().eq(BidNotice::getIsTop,"20"));bidNotice.setSort(aCount+1);bidNotice.setIsTop("20");bidNotice.setStatus("20");bidNotice.setVisit(0);bidNoticeService.save(bidNotice);return Result.OK("添加成功!");}/*** 递增指定公告的访问数** @param id* @return*/@GetMapping("/increVisit")public Result<?> increVisit(@RequestParam(name="id",required=true) String id) {int visit = bidNoticeService.increVisit(id);return Result.ok(visit);}/***  发布** @param id* @return*/@AutoLog(value = "通知公告-发布")@ApiOperation(value="通知公告-发布", notes="通知公告-发布")@GetMapping(value = "/release")public Result<?> release(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);bidNotice.setStatus("10");bidNotice.setReleaseDate(new Date());bidNoticeService.updateById(bidNotice);return Result.OK("发布成功!");}/***  下架** @param id* @return*/@AutoLog(value = "通知公告-下架")@ApiOperation(value="通知公告-下架", notes="通知公告-下架")@GetMapping(value = "/notRelease")public Result<?> notRelease(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);bidNotice.setStatus("20");bidNoticeService.updateById(bidNotice);return Result.OK("下架成功!");}/***  置顶** @param id* @return*/@AutoLog(value = "通知公告-置顶")@ApiOperation(value="通知公告-置顶", notes="通知公告-置顶")@GetMapping(value = "/top")public Result<?> top(@RequestParam(name="id",required=true) String id) {int aCount = bidNoticeService.count(new LambdaQueryWrapper<BidNotice>().eq(BidNotice::getIsTop,"10"));BidNotice bidNotice = bidNoticeService.getById(id);bidNoticeService.updateSortByDel(bidNotice);bidNotice.setIsTop("10");bidNotice.setSort(aCount+1);bidNoticeService.updateById(bidNotice);return Result.OK("置顶成功!");}/***  取消置顶** @param id* @return*/@AutoLog(value = "通知公告-取消置顶")@ApiOperation(value="通知公告-取消置顶", notes="通知公告-取消置顶")@GetMapping(value = "/notTop")public Result<?> notTop(@RequestParam(name="id",required=true) String id) {int aCount = bidNoticeService.count(new LambdaQueryWrapper<BidNotice>().eq(BidNotice::getIsTop,"20"));BidNotice bidNotice = bidNoticeService.getById(id);bidNoticeService.updateSortByDel(bidNotice);bidNotice.setIsTop("20");bidNotice.setSort(aCount+1);bidNoticeService.updateById(bidNotice);return Result.OK("取消置顶成功!");}/***  上移** @param id* @return*/@AutoLog(value = "通知公告-上移")@ApiOperation(value="通知公告-上移", notes="通知公告-上移")@GetMapping(value = "/up")public Result<?> up(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);int aSort = bidNotice.getSort();if(aSort != 1) {BidNotice aBidNotice = bidNoticeService.getOne(new QueryWrapper<BidNotice>().eq("sort", aSort - 1).eq("is_top",bidNotice.getIsTop()));bidNotice.setSort(aSort - 1);aBidNotice.setSort(aSort);bidNoticeService.updateById(bidNotice);bidNoticeService.updateById(aBidNotice);}return Result.OK("上移成功!");}/***  下移** @param id* @return*/@AutoLog(value = "通知公告-下移")@ApiOperation(value="通知公告-下移", notes="通知公告-下移")@GetMapping(value = "/down")public Result<?> down(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);int aSort = bidNotice.getSort();int aCount= bidNoticeService.count();if(aSort != aCount) {BidNotice aBidNotice= bidNoticeService.getOne(new QueryWrapper<BidNotice>().eq("sort", aSort + 1).eq("is_top",bidNotice.getIsTop()));bidNotice.setSort(aSort + 1);aBidNotice.setSort(aSort);bidNoticeService.updateById(bidNotice);bidNoticeService.updateById(aBidNotice);}return Result.OK("下移成功!");}/***  编辑** @param bidNotice* @return*/@AutoLog(value = "公告管理-编辑")@ApiOperation(value="公告管理-编辑", notes="公告管理-编辑")@PutMapping(value = "/edit")public Result<?> edit(@RequestBody BidNotice bidNotice) {bidNoticeService.updateById(bidNotice);return Result.OK("编辑成功!");}/***   通过id删除** @param id* @return*/@AutoLog(value = "公告管理-通过id删除")@ApiOperation(value="公告管理-通过id删除", notes="公告管理-通过id删除")@DeleteMapping(value = "/delete")public Result<?> delete(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);bidNoticeService.updateSortByDel(bidNotice);bidNoticeService.removeById(id);return Result.OK("删除成功!");}/*** 通过id查询** @param id* @return*/@AutoLog(value = "公告管理-通过id查询")@ApiOperation(value="公告管理-通过id查询", notes="公告管理-通过id查询")@GetMapping(value = "/queryById")public Result<?> queryById(@RequestParam(name="id",required=true) String id) {BidNotice bidNotice = bidNoticeService.getById(id);if(bidNotice==null) {return Result.error("未找到对应数据");}return Result.OK(bidNotice);}}

服务层:

1、接口

package org.jeecg.modules.bidding.service;import org.jeecg.modules.bidding.entity.BidNotice;
import com.baomidou.mybatisplus.extension.service.IService;/*** @Description: 公告管理* @Author: jeecg-boot* @Date:   2022-05-06* @Version: V1.0*/
public interface IBidNoticeService extends IService<BidNotice> {void updateSortByDel(BidNotice bidNotice);int increVisit(String id);
}

2、实现

package org.jeecg.modules.bidding.service.impl;import org.jeecg.modules.bidding.entity.BidNotice;
import org.jeecg.modules.bidding.mapper.BidNoticeMapper;
import org.jeecg.modules.bidding.service.IBidNoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;/*** @Description: 公告管理* @Author: jeecg-boot* @Date:   2022-05-06* @Version: V1.0*/
@Service
public class BidNoticeServiceImpl extends ServiceImpl<BidNoticeMapper, BidNotice> implements IBidNoticeService {@Autowiredprivate BidNoticeMapper bidNoticeMapper;@Overridepublic void updateSortByDel(BidNotice bidNotice) {bidNoticeMapper.updateSortByDel(bidNotice);}@Overridepublic synchronized int increVisit(String id) {BidNotice bidNotice = bidNoticeMapper.selectById(id);bidNotice.setVisit(bidNotice.getVisit()+1);bidNoticeMapper.updateById(bidNotice);return bidNotice.getVisit();}
}

dao层:

1、mapper

package org.jeecg.modules.bidding.mapper;import java.util.List;import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.bidding.entity.BidNotice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** @Description: 公告管理* @Author: jeecg-boot* @Date:   2022-05-06* @Version: V1.0*/
public interface BidNoticeMapper extends BaseMapper<BidNotice> {void updateSortByDel(BidNotice bidNotice);
}

2、mybatis文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.bidding.mapper.BidNoticeMapper"><update id="updateSortByDel" parameterType="org.jeecg.modules.bidding.entity.BidNotice">update bid_notice<set>sort = sort - 1</set>where sort &gt; #{sort}and is_top = #{isTop}</update>
</mapper>

二、前端

<template><a-card :bordered="false"><!-- 查询区域 --><div class="table-page-search-wrapper"><a-form layout="inline" @keyup.enter.native="searchQuery"><a-row :gutter="24"><a-col :xl="6" :lg="7" :md="8" :sm="24"><a-form-item label="标题"><a-input placeholder="请输入标题" v-model="queryParam.title"></a-input></a-form-item></a-col><a-col :xl="6" :lg="7" :md="8" :sm="24"><a-form-item label="状态"><j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="notice_status"/></a-form-item></a-col><template v-if="toggleSearchStatus"><a-col :xl="10" :lg="11" :md="12" :sm="24"><a-form-item label="发布时间"><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.releaseDate_begin"></j-date><span class="query-group-split-cust"></span><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.releaseDate_end"></j-date></a-form-item></a-col></template><a-col :xl="6" :lg="7" :md="8" :sm="24"><span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"><a-button type="primary" @click="searchQuery" icon="search">查询</a-button><a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button><a @click="handleToggleSearch" style="margin-left: 8px">{{ toggleSearchStatus ? '收起' : '展开' }}<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/></a></span></a-col></a-row></a-form></div><!-- 查询区域-END --><!-- 操作按钮区域 --><div class="table-operator"><a-button @click="handleAdd" type="primary" icon="plus">新增</a-button></div><!-- table区域-begin --><div><a-tableref="table"size="middle":scroll="{x:true}"borderedrowKey="id":columns="columns":dataSource="dataSource":pagination="ipagination":loading="loading"class="j-table-force-nowrap"@change="handleTableChange"><template slot="htmlSlot" slot-scope="text"><div v-html="text"></div></template><template slot="imgSlot" slot-scope="text"><span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span><img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/></template><template slot="fileSlot" slot-scope="text"><span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span><a-buttonv-else:ghost="true"type="primary"icon="download"size="small"@click="downloadFile(text)">下载</a-button></template><span slot="action" slot-scope="text, record"><a v-if="record.status=='20'" @click="handleRelease(record.id)">发布</a><a v-else @click="handleNotRelease(record.id)">下架</a><a-divider type="vertical" /><a v-if="record.isTop=='20'" @click="handleTop(record.id)">置顶</a><a v-else @click="handleNotTop(record.id)">取消置顶</a><a-divider type="vertical" /><a @click="handleUp(record.id)">上移</a><a-divider type="vertical" /><a @click="handleDown(record.id)">下移</a><a-divider type="vertical" v-if="record.status=='20'"/><a @click="handleEdit(record)" v-if="record.status=='20'">编辑</a><a-divider type="vertical" /><a @click="viewNotice(record)">详情</a><a-divider type="vertical" v-if="record.status=='20'"/><a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)" v-if="record.status=='20'"><a>删除</a></a-popconfirm></span></a-table></div><bid-notice-modal ref="modalForm" @ok="modalFormOk"></bid-notice-modal><view-notice-modal ref="viewModal" @ok="modalFormOk"></view-notice-modal></a-card>
</template><script>import '@/assets/less/TableExpand.less'import { mixinDevice } from '@/utils/mixin'import { JeecgListMixin } from '@/mixins/JeecgListMixin'import BidNoticeModal from './modules/BidNoticeModal'import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'import { getAction} from '@/api/manage'import ViewNoticeModal from './modules/ViewNoticeModal'export default {name: 'BidNoticeList',mixins:[JeecgListMixin, mixinDevice],components: {BidNoticeModal,ViewNoticeModal},data () {return {description: '公告管理管理页面',// 表头columns: [{title: '#',dataIndex: '',key:'rowIndex',width:60,align:"center",customRender:function (t,r,index) {return parseInt(index)+1;}},{title:'标题',align:"center",dataIndex: 'title'},{title:'是否置顶',align:"center",dataIndex: 'isTop_dictText'},{title:'状态',align:"center",dataIndex: 'status_dictText'},{title:'发布时间',align:"center",dataIndex: 'releaseDate'},{title:'内置顺序',align:"center",dataIndex: 'sort'},{title:'访问量',align:"center",dataIndex: 'visit'},{title: '操作',dataIndex: 'action',align:"center",fixed:"right",width:147,scopedSlots: { customRender: 'action' }}],url: {list: "/bidding/bidNotice/list",delete: "/bidding/bidNotice/delete",deleteBatch: "/bidding/bidNotice/deleteBatch",exportXlsUrl: "/bidding/bidNotice/exportXls",importExcelUrl: "bidding/bidNotice/importExcel",Top: "/bidding/bidNotice/top",notTop: "/bidding/bidNotice/notTop",up: "/bidding/bidNotice/up",down: "/bidding/bidNotice/down",Release: "/bidding/bidNotice/release",notRelease: "/bidding/bidNotice/notRelease",},dictOptions:{},superFieldList:[],}},created() {this.getSuperFieldList();},computed: {importExcelUrl: function(){return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;},},methods: {initDictConfig(){},getSuperFieldList(){let fieldList=[];fieldList.push({type:'string',value:'title',text:'标题',dictCode:''})fieldList.push({type:'Text',value:'content',text:'内容',dictCode:''})fieldList.push({type:'string',value:'isTop',text:'是否置顶',dictCode:'notice_top'})fieldList.push({type:'string',value:'status',text:'状态',dictCode:'notice_status'})fieldList.push({type:'datetime',value:'releaseDate',text:'发布时间'})fieldList.push({type:'Text',value:'annex',text:'附件',dictCode:''})this.superFieldList = fieldList},viewNotice(record){this.$refs.viewModal.initModal(record);},handleRelease: function (id) {var that = this;getAction(that.url.Release, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});},handleNotRelease: function (id) {var that = this;getAction(that.url.notRelease, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});},handleTop: function (id) {var that = this;getAction(that.url.Top, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});},handleNotTop: function (id) {var that = this;getAction(that.url.notTop, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});},handleUp: function (id) {var that = this;getAction(that.url.up, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});},handleDown: function (id) {var that = this;getAction(that.url.down, {id: id}).then((res) => {if (res.success) {that.$message.success(res.message);that.loadData();} else {that.$message.warning(res.message);}});}}}
</script>
<style scoped>@import '~@assets/less/common.less';
</style>

java 基于jeecg-boot的公告管理——上移、下移、置顶相关推荐

  1. Layui 设置多个穿梭框,并增加上移下移置顶置底功能

    Layui 设置多个穿梭框,并增加上移下移置顶置底功能 介绍 针对layui穿梭框进行了一些修改,增加上移下移置顶置底功能,设置了右侧框的排序功能,按序取值,按序加载的功能. 基于layui 2.5. ...

  2. oracle上移下移置顶,[置顶]       阅读Oracle官方文档指南

    [置顶]       阅读Oracle官方文档指南 还在整理中.... EXPDP/IMPDP 相关文档:Utilities 2 Data Pump Export 3 Data Pump Import ...

  3. java基于ssm智慧农贸信息化管理平台

    随着时代的发展,互联网和计算机技术,带动了整个社会的发展,方便了我们的生活.智慧农贸信息化管理平台是"信息公示.产品溯源.价格检测"互联网:的农贸市场综合信息化管理平台,使农贸市场 ...

  4. java基于springboot的民宿管理平台

    开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/id ...

  5. java怎么在记事本里写过运行_[置顶] 如何运行用记事本写的java程序

    今天用记事本写了一个java程序,测试能运行,现在把它分解成几个步骤,利于大家理解: 1. 新建一个记事本,后缀名是  .java  :然后在里面写一段java的代码,如图: 2.把写好的java文件 ...

  6. 【java毕业设计】基于Spring Boot+mysql的酒店管理系统设计与实现(程序源码+毕业论文)-酒店管理系统

    基于Spring Boot+mysql的酒店管理系统设计与实现(程序源码+毕业论文) 大家好,今天给大家介绍基于Spring Boot+mysql的酒店管理系统设计与实现,本论文只截取部分文章重点,文 ...

  7. 【java毕业设计】基于Spring Boot+mysql的口腔管理平台系统设计与实现(程序源码)-口腔管理平台

    基于Spring Boot+mysql的腔管理平台系统设计与实现(程序源码+毕业论文) 大家好,今天给大家介绍基于Spring Boot+mysql的腔管理平台系统设计与实现,本论文只截取部分文章重点 ...

  8. JAVA学习笔记JEECG BOOT介绍

    JEECG JEECG BOOT 低代码开发平台(前后端分离版本) 当前最新版本: 3.1.0(发布日期:2022-03-01) AUR GitHub stars GitHub forks 项目介绍: ...

  9. 【java毕业设计】基于Spring Boot+mysql的线上教学平台系统设计与实现(程序源码)-线上教学平台

    基于Spring Boot+mysql的线上教学平台系统设计与实现(程序源码+毕业论文) 大家好,今天给大家介绍基于Spring Boot+mysql的线上教学平台系统设计与实现,本论文只截取部分文章 ...

最新文章

  1. 三层交换机vlan间访问(第一种方式)
  2. IsNull和IsEmpty的区别
  3. 希尔排序(插入排序的优化算法)
  4. 17_android下xmlpull解析
  5. 2013年5月7日---JS中的正则
  6. python如何定位路径_selenium_webdriver(python)查看文件路径,鼠标定位
  7. 除了HTML+CSS,成就高薪web前端还需要学习什么技术?
  8. 【Stanford Online】Engineering: Algorithms1 NO.4 The Master Method
  9. qcom内存大小配置及调频测试
  10. 《工程学导论》读书笔记-2
  11. 小朋友Stem课程制作3D打印无人机
  12. 值得留意在线支持插件
  13. 百度媒体云-android接入教程,帮助文档首页/百度账号连接/百度账号接入指南 - 百度开放云平台...
  14. 弦截法 解高次方程 C语言/C++
  15. Linux中 [Error 28] 设备上没有空间
  16. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》
  17. RxJava 源码解析 —— Observable#defer(...)
  18. Redis 九种数据结构及其底层实现 持久化 缓存机制 过期键与内存淘汰 集群等相关知识
  19. 使用postcss报错
  20. 科学计数法转为普通计数法

热门文章

  1. 计算机教案在幻灯片中插入影片,《在幻灯片中插入图片》教学设计
  2. 另存为后通过原来的名字还能找到窗体的问题
  3. opencv-边缘检测+获取轮廓
  4. Dubbo泛化调用处理序列化问题
  5. Linux ls 文件名颜色
  6. 幼儿园带括号算式口诀_41组“数学顺口溜”+大九九乘法口诀表!给孩子疯狂收藏!...
  7. 计算机考研英语题型,2019考研英语大纲发布,如何高效备考新题型
  8. SVN插件提交报错Attempted to lock an already-locked dir svn: Working copy
  9. CVPR2018受争议论文正面回应出炉:有方法,有态度
  10. RealTime Linux