当前位置: 首页 > news >正文

网站建设需要知识wordpress用lanmp

网站建设需要知识,wordpress用lanmp,电子商务网站建设与管理试题答案,网站配色案例分析内容介绍 1、数据字典列表前端 2、EasyExcel介绍、实例 3、数据字典导出接口、前端 4、数据字典导入接口、前端 5、数据字典添加redis缓存 6、MongoDB简介 7、MongoDB安装 8、MongoDB基本概念 数据字典列表前端 1、测试问题 #xff08;1#xff09;报错日志 1报错日志 2问题定位 URL错误 3解决问题 2、nginx 1基本功能 反向代理、负载均衡、动静分离 2安装 解压即可使用 3启动 4修改配置 server {     listen 9001;     server_name localhost;     location ~/hosp/ {                   proxy_pass http://localhost:8201;     }     location ~/cmn/ {                   proxy_pass http://localhost:8202;     } } 重启服务或重新加载nginx.exe -s reload才可生效 5测试访问后端接口 http://localhost:9001/admin/hosp/hospitalSet/findAll 6改造前端 重启生效 EasyExcel介绍、实例 1、是什么 EasyExcel是阿里巴巴开源的一个excel处理框架以使用简单、节省内存著称。 2、为什么 没有将文件数据一次性全部加载到内存中而是从磁盘上一行行读取数据逐个解析。 3、准备工作 1cmn导入依赖 dependencies!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion2.1.1/version/dependency/dependencies 2创建目录、创建实体 Datapublic class Stu {//设置表头名称 ExcelProperty(学生编号)private int sno;//设置表头名称 ExcelProperty(学生姓名)private String sname;} 4、实现写操作 public class WriterTest {public static void main(String[] args) {String fileName D:\\test\\230308\\a.xlsx;EasyExcel.write(fileName,Stu.class).sheet(学员信息).doWrite(data());}//循环设置要添加的数据最终封装到list集合中 private static ListStu data() {ListStu list new ArrayListStu();for (int i 0; i 10; i) {Stu data new Stu();data.setSno(i);data.setSname(张三i);list.add(data);}return list;}} 5、实现读操作 1改造实体 Datapublic class Stu {//设置表头名称 ExcelProperty(value 学生编号,index 0)private int sno;//设置表头名称 ExcelProperty(value 学生姓名,index 1)private String sname;} 2创建监听器 public class ExcelListener extends AnalysisEventListenerStu {Overridepublic void invoke(Stu stu, AnalysisContext analysisContext) {//可以实现调用接口数据入库 System.out.println(stu stu);}//读取excel表头信息 Overridepublic void invokeHeadMap(MapInteger, String headMap, AnalysisContext context) {System.out.println(表头信息headMap);}Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {}} 3读数据实例 public class ReadTest {public static void main(String[] args) {String fileName D:\\test\\230308\\a.xlsx;EasyExcel.read(fileName,Stu.class,new ExcelListener()).sheet().doRead();}} 数据字典导出、前端 1、准备工作 1确认依赖 2确认对象 2、实现导出接口 1分析接口 *参数response *返回值无 2实现controller ApiOperation(value导出)GetMapping(value /exportData)public void exportData(HttpServletResponse response) {dictService.exportData(response);} 3实现service //导出 Overridepublic void exportData(HttpServletResponse response) {try {//1设置response参数 response.setContentType(application/vnd.ms-excel);response.setCharacterEncoding(utf-8);// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 String fileName URLEncoder.encode(数据字典, UTF-8);response.setHeader(Content-disposition, attachment;filename fileName .xlsx);//2查询数据字典表数据ListDictListDict dictList baseMapper.selectList(null);//3遍历集合ListDict转型ListDictEeVoListDictEeVo dictEeVoList new ArrayList();for (Dict dict : dictList) {DictEeVo dictEeVo new DictEeVo();BeanUtils.copyProperties(dict,dictEeVo);dictEeVoList.add(dictEeVo);}//4调用工具方法导出数据 ServletOutputStream outputStream response.getOutputStream();EasyExcel.write(outputStream,DictEeVo.class).sheet(数据字典).doWrite(dictEeVoList);} catch (IOException e) {throw new YyghException(20001,导出失败);}} 3、对接前端 1添加页面元素 div classel-toolbardiv classel-toolbar-body stylejustify-content: flex-start;el-button typetext clickexportDatai classfa fa-plus/ 导出/el-button/div/div2实现js方法//导出数据exportData(){window.open(${process.env.VUE_APP_BASE_API}admin/cmn/dict/exportData)} 3测试 数据字典导入、前端 1、数据字典导入接口 1分析接口 *参数:file *返回值:R.ok() 2实现controller ApiOperation(value 导入)PostMapping(importData)public R importData(MultipartFile file) {dictService.importData(file);return R.ok();} 3创建监听器 Componentpublic class DictListener  extends AnalysisEventListenerDictEeVo {Autowiredprivate DictMapper dictMapper;//手动注入使用有参构造 //private DictMapper dictMapper;Overridepublic void invoke(DictEeVo dictEeVo, AnalysisContext analysisContext) {//1转化数据类型DictEeVo》DictDict dict new Dict();BeanUtils.copyProperties(dictEeVo,dict);//2补充数据 dict.setIsDeleted(0);//3数据入库 dictMapper.insert(dict);}Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {}} 4实现service Autowiredprivate DictListener dictListener; //导入 Overridepublic void importData(MultipartFile file) {try {InputStream inputStream file.getInputStream();EasyExcel.read(inputStream,DictEeVo.class,dictListener).sheet().doRead();} catch (IOException e) {throw new YyghException(20001,导入失败);}} 5测试 2、对接前端 1分析需求 2查看组件 3添加页面元素 div classel-toolbar       div classel-toolbar-body stylejustify-content: flex-start;         el-button typetext clickexportData           i classfa fa-plus/ 导出         /el-button         el-button typetext clickimportDatai classfa fa-plus/ 导入/el-button       /div     /div el-dialog title导入 :visible.syncdialogImportVisible width480px       el-form label-positionright label-width170px         el-form-item label文件           el-upload             :multiplefalse             :on-successonUploadSuccess             :actionBASE_URLadmin/cmn/dict/importData             classupload-demo                       el-button sizesmall typeprimary点击上传/el-button             div slottip classel-upload__tip只能上传xls文件且不超过500kb/div           /el-upload         /el-form-item       /el-form       div slotfooter classdialog-footer         el-button clickdialogImportVisible false取消/el-button       /div     /el-dialog 4实现js *属性 data() {     return {       list: [],       dialogImportVisible: false, //对话框是否显示       BASE_URL: process.env.VUE_APP_BASE_API //基础访问地址     };   }, …… *方法 //打开导入窗口     importData() {       this.dialogImportVisible true;     },     //导入成功方法     onUploadSuccess(response, file) {       this.$message.success(上传成功);       this.dialogImportVisible false;       this.getData();     } 数据字典添加redis缓存 1、redis回顾 2、准备工作 1虚拟机 2安装redis 3检查配置 4启动redis 3、redis缓存访问机制 4、整合redis 1common_utils模块添加redis依赖 dependencies!-- redis --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- spring2.X集成redis所需common-pool2--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.6.0/version/dependency/dependencies 2common_utils模块添加Redis配置类 ConfigurationEnableCachingpublic class RedisConfig {/*** 设置RedisTemplate规则 * param redisConnectionFactory* return*/Beanpublic RedisTemplateObject, Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplateObject, Object redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(redisConnectionFactory);Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);//解决查询缓存转换异常的问题 ObjectMapper om new ObjectMapper();// 指定要序列化的域field,get和set,以及修饰符范围ANY是都有包括private和publicom.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);// 指定序列化输入的类型类必须是非final修饰的final修饰的类比如String,Integer等会跑出异常 om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);//序列号key valueredisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;}/*** 设置CacheManager缓存规则 * param factory* return*/Beanpublic CacheManager cacheManager(RedisConnectionFactory factory) {RedisSerializerString redisSerializer new StringRedisSerializer();Jackson2JsonRedisSerializer jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);//解决查询缓存转换异常的问题 ObjectMapper om new ObjectMapper();om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);// 配置序列化解决乱码的问题,过期时间600秒 RedisCacheConfiguration config RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(600)).serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)).disableCachingNullValues();RedisCacheManager cacheManager RedisCacheManager.builder(factory).cacheDefaults(config).build();return cacheManager;}} 3在service_cmn模块添加redis配置 spring.redis.host192.168.140.138spring.redis.port6379spring.redis.database 0spring.redis.timeout1800000spring.redis.lettuce.pool.max-active20spring.redis.lettuce.pool.max-wait-1#最大阻塞等待时间(负数表示没限制)spring.redis.lettuce.pool.max-idle5spring.redis.lettuce.pool.min-idle0 (4)查询方法添加注解 Override// redis k:v   kdict::selectIndexList  vListDictCacheable(value dict, key selectIndexList)public ListDict findChildData(Long id) {//1拼写查询条件 LambdaQueryWrapperDict wrapper new LambdaQueryWrapper();wrapper.eq(Dict::getParentId,id);//2查询子数据集合 ListDict dictList baseMapper.selectList(wrapper);//3遍历集合,确认是否有子数据 for (Dict dict : dictList) {boolean isChildren this.isChildren(dict);dict.setHasChildren(isChildren);}return dictList;} 5、问题解决 1问题描述 *一级数据可以走缓存 *二级数据加载不出来 2问题定位 *二级数据查询需要查询数据库 *二级数据没有查询数据库查询缓存获取一级数据 3解决方案 让多次查询redis缓存的key不一样 //根据数据id查询子数据列表 Override// redis k:v   kdict::selectIndexList  vListDictCacheable(value dict, key selectIndexList#id)public ListDict findChildData(Long id) {//1拼写查询条件 LambdaQueryWrapperDict wrapper new LambdaQueryWrapper();wrapper.eq(Dict::getParentId,id);//2查询子数据集合 ListDict dictList baseMapper.selectList(wrapper);//3遍历集合,确认是否有子数据 for (Dict dict : dictList) {boolean isChildren this.isChildren(dict);dict.setHasChildren(isChildren);}return dictList;} 4、redis缓存写操作同步机制 MongoDB简介 1 NoSQL概述 2、MongoDB是什么 MongoDB 是由C语言编写的是一个基于分布式文件存储的开源数据库系统。 MongoDB 是文档型NOSQL数据库 MongoDB安装 1、安装 1确认docker服务 2下载 docker pull mongo:latest docker pull mongo:4.4.8 3创建和启动容器 docker run -d --restartalways -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo:4.4.8 (4)进入容器 docker exec -it mymongo /bin/bash 5进入mongo mongo 新版本mongosh MongoDB概念介绍 1、与mysql对比 2、数据库文件柜 1Help查看命令提示 db.help(); 2use test 如果数据库不存在则创建数据库否则切换到指定数据库 3 查询所有数据库 show dbs; 4删除当前使用数据库 db.dropDatabase(); 5查看当前使用的数据库 db.getName(); 6显示当前db状态 db.stats(); 7当前db版本 db.version(); 8 查看当前db的链接机器地址 db.getMongo(); 3、集合抽屉 1、 创建一个集合table) db.createCollection( user); 2、 得到指定名称的集合table ) db.getCollection(user); 4、文档 文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段并且相同的字段不需要相同的数据类型这与关系型数据库有很大的区别 1数据类型
http://www.zqtcl.cn/news/144358/

相关文章:

  • 做电影ppt模板下载网站有什么网站可以做海报
  • 搭建网站需要做什么国外互动网站
  • 淘宝客导购网站怎么做建设网站天河区
  • 做网站的优势有哪些wordpress 一直崩溃
  • 长沙交互网站设计服务商优秀的网页网站设计
  • android 旅游网站开发有哪些做伦敦金的网站
  • 物流网站系统php源码seo课程多少钱
  • 手机 网站品牌网站建设 d磐石网络
  • 免费用搭建网站珠海住房和建设局网站
  • 天津做胎儿鉴定网站广州古德室内设计有限公司logo
  • 做爰的最好看的视频的网站简洁型网页
  • 网站一直显示建设中网页制作工具程
  • 苏州seo网站管理网站后台更新后主页没有变化
  • 上海网站公司电话中国电子信息网
  • 合作网站seo在哪里建网站免费
  • 需求网站自动发卡网站开发
  • 用asp做网站span电子商务网站建设的教案
  • 厦门市住房建设网站音乐主题wordpress
  • 小说网站开发文档建站公司用wordpress
  • 自己做手机版网站制作佛山网站建设企划动力
  • 鄂州建设工程造价信息管理网站wordpress 3.9 编辑文章 固定链接 不能编辑
  • asp网站的安全性织梦移动端网站建设
  • 大网站的二级域名哪些平台可以发布产品
  • 旅游网站开发说明书怎么做好销售
  • 网站app生成器天河网站建设服务
  • 南京移动网站建设哪里强新网站建设都需要哪些
  • .net网站制作wordpress配置多语言包
  • 上海源码网站建设公司做短视频的网站都有哪些
  • 网络推广公司联系昔年下拉网络优化seo
  • 网站开发语言识别网站众筹该怎么做