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

怎样在一个虚拟服务器里做两个网站广东队对阵广州队

怎样在一个虚拟服务器里做两个网站,广东队对阵广州队,温州大都市建设开发有限公司网站,世界顶级室内设计大学文章目录 前言数据库问题背景后端返回实体对象前端 实现后端返回List<Map<String, Object>>前端 前言 在这篇文章&#xff0c;我们保存了数据库的jsonb类型&#xff1a;MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/json…

文章目录

  • 前言
  • 数据库
  • 问题背景
    • 后端返回实体对象
    • 前端
  • 实现
    • 后端返回List<Map<String, Object>>
    • 前端


前言

在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询

这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段

在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,如果我们拿到的键的顺序打乱了,我们想要一次性模糊查询json/jsonb数据就查询不到正确的数据了。

本文接下来将会讲解在MyBatis-Plus中如何实现返回给前端json/jsonb数据的键值对格式和数据库的格式一致。


数据库

这有一组jsonb类型的数据:

在这里插入图片描述

问题背景

后端返回实体对象

  • specialControl为jsonb类型

以下代码实现了数据返回接口,并可模糊查询jsonb类型

@GetMapping
@ResponseBody
public Object get(@RequestParam(value = "id", required = false) String id,@RequestParam(value = "name", required = false) String name,@RequestParam(value = "specialControl", required = false) String specialControl) {MPJQueryWrapper<Strategy> mpjQueryWrapper = new MPJQueryWrapper<>();mpjQueryWrapper.selectAll(Strategy.class).eq(StringUtil.isNotEmpty(id), "t.id", id).like(StringUtil.isNotEmpty(name), "t.name", name).orderByDesc("t.create_time");if (StringUtil.isNotEmpty(specialControl)) {mpjQueryWrapper.like("t.special_control::text", specialControl.replace(":", ": ").replace(",", ", "));}return strategyService.selectJoinList(Strategy.class, mpjQueryWrapper);
}

前端

序列化Json对象并输出

console.log(JSON.stringify(this.form.specialControl))

输出数据如下:

在这里插入图片描述

可以看到,content 内的键值对的顺序被打乱,和数据库的不一致。

实现

后端返回List<Map<String, Object>>

数据库列名为 special_control,前端数据为驼峰格式,需进行别名 special_control as \"specialControl\"

此时数据库的jsonb数据会被序列化返回给前端,所以jsonb的键值对顺序不会被打乱

  • 序列化:把对象转换为字节序列的过程称为对象的序列化
  • 反序列化:把字节序列恢复为对象的过程称为对象的反序列化
@GetMapping
@ResponseBody
public List<Map<String, Object>> get(@RequestParam(value = "id", required = false) String id,@RequestParam(value = "name", required = false) String name,@RequestParam(value = "specialControl", required = false) String specialControl) {MPJQueryWrapper<Strategy> mpjQueryWrapper = new MPJQueryWrapper<>();mpjQueryWrapper.select("t.id as id, t.name as name, t.special_control as \"specialControl\"").eq(StringUtil.isNotEmpty(id), "t.id", id).like(StringUtil.isNotEmpty(name), "t.name", name).orderByDesc("t.create_time");if (StringUtil.isNotEmpty(specialControl)) {mpjQueryWrapper.like("t.special_control::text", specialControl.replace(":", ": ").replace(",", ", "));}return strategyService.listMaps(mpjQueryWrapper);
}

前端

if (this.form.specialControl != null) {// 反序列化this.form.specialControl = JSON.parse(this.form.specialControl)// 序列化并输出console.log(JSON.stringify(this.form.specialControl))
} else {this.form.specialControl = []
}

输出数据如下:

在这里插入图片描述

即使前端JSON.parse()序列化了字节,再通过JSON.stringify()反序列化输出,可以看到顺序不会被打乱,和数据库的一致。

那么我们就可以直接拿到这一串数据和数据库进行模糊查询匹配。

http://www.bjxfkj.com.cn/article/104267.html

相关文章:

  • 网站建设中 gif网络销售是什么
  • 嵊州门户网站我想做app推广怎么做
  • 防录屏网站怎么做谷歌广告代运营
  • 做面膜的网站网站排行榜前十名
  • 广州 经营性网站备案网络营销工程师
  • 360客户如何做网站推广吉林网站推广公司
  • 在线编写html网页代码seo经理招聘
  • 优惠券网站要怎么做推广搜索引擎优化管理实验报告
  • 爱网站黄害羞草为什么中国禁止谷歌浏览器
  • 顺企网江西网站建设seo诊断报告怎么写
  • 网站设计首页优化网络软件
  • 济宁网站制作网络服务运营商
  • 域名绑定网站百度搜索优化
  • 酒店网站建设的基本内容网络营销推广主要做什么
  • 上海教育网站官网赣州seo推广
  • 怎么自己做网站挂到百度上seo关键词优化案例
  • 北京网站备案更换主体培训班管理系统 免费
  • 金融投资网站软件定制
  • 什么做网站的公司好东莞哪种网站推广好
  • 网上商城怎么做推广武汉seo工作室
  • 长沙市建设网站平台的公司短视频如何引流与推广
  • 家具网站开发设计论文网络营销的含义是什么
  • 搜索引擎在网站建设中的重要性seo培训教程视频
  • 网站的整体结构百度安装下载
  • 萝卜建站分类信息torrentkitty磁力官网
  • windows怎么做网站sem
  • 常州网站建设联系电话网址缩短
  • 苏宁易购网站建设分析推广工具有哪些
  • 如何开一家网站建设公司济南seo优化外包
  • 南阳网站建设大旗电商北京seo优化多少钱