乐优商城sql,表tb_spec_param,tb_spec_group和tb_spu_detail,和对应实体类

  • 视频缺失的表
  • 对tb_spec_group和tb_spec_param转化过程
  • 最后

视频缺失的表

表的结构和实体类是暂停视频,跟着敲出来的,数据则是我根据表tb_specification的specifications,创建一个对应实体类,然后用java代码生成的,除了tb_spec_group和tb_spec_param之外,我还对tb_spu_detail,扩充了generic通用规格参数和special这两个字段,然后通过tb_spec_group和tb_spec_param这两张表,对这两个新字段数据进行填充,这些后面做搜索都可以用到
1.SpecGroup

@Data
@Table(name = "tb_spec_group")
public class SpecGroup {@Id@KeySql(useGeneratedKeys = true)private Long id;private Long cid;private String name;
}

2.SpecParam

@Data
@Table(name = "tb_spec_param")
public class SpecParam {@Id@KeySql(useGeneratedKeys = true)private Long id;private Long cid;private Long groupId;private String name;@Column(name = "`numeric`")private Boolean numeric;private String unit;private Boolean generic;private Boolean searching;private String segments;
}

3.sql文件
链接:https://pan.baidu.com/s/1wJpvFC8oNjU7-P7DrxXDTg
提取码:cqbp
复制这段内容后打开百度网盘手机App,操作更方便哦

对tb_spec_group和tb_spec_param转化过程

1…随机选取表tb_specification的specifications的一个数据,通过观察可以知道这个是一个List集合,集合装着的对应的类型对象

2.数据对应的类

@Data
public class JsonObject {private String group;//组名private List<Param> params;//param数组private Boolean empty;//未知,原来没加,然后空指针异常,在某条数据上发现的
}
@Data
class Param {private String k;//param名private Boolean searchable;//可否搜索private Boolean global;//是否通用属性参数private Boolean numerical;//是否是数字类型参数private String unit;//数字类型参数的单位,非数字类型可以为空private String v;//param值,后面用到private List<String> options;//待选项集合
}

3.表tb_spec_group添加数据

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpecGroupMapperTest {@Autowiredprivate SpecificationMapper specificationMapper;@Autowiredprivate SpecGroupMapper specGroupMapper;@Testpublic void test(){//从表‘tb_specification’获取规格参数集合List<Specification> specifications = specificationMapper.selectAll();//遍历规格参数集合for (Specification specification : specifications) {//获取具体规格参数String spec = specification.getSpec();//将规格参数转为对象List<JsonObject> jsonObjects = JsonUtils.parseList(spec, JsonObject.class);for (JsonObject jsonObject : jsonObjects) {String group = jsonObject.getGroup();SpecGroup specGroup = new SpecGroup();specGroup.setId(null);specGroup.setCid(specification.getCategoryId());specGroup.setName(group);int insert = specGroupMapper.insert(specGroup);System.out.println("insert = " + insert);}}}
}

结果:

4.表tb_spec_param添加数据

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpecparamMapperTest {@Autowiredprivate SpecParamMapper specParamMapper;@Autowiredprivate SpecGroupMapper specGroupMapper;@Autowiredprivate SpecificationMapper specificationMapper;@Testpublic void test(){//从表‘tb_specification’获取规格参数集合List<Specification> specifications = specificationMapper.selectAll();int count = 0;//遍历规格参数集合for (Specification specification : specifications) {//获取具体规格参数String spec = specification.getSpec();//将规格参数转为对象List<JsonObject> jsonObjects = JsonUtils.parseList(spec, JsonObject.class);for (JsonObject jsonObject : jsonObjects) {String group = jsonObject.getGroup();SpecGroup specGroup = new SpecGroup();specGroup.setName(group);//获取规格参数groupList<SpecGroup> groupList = specGroupMapper.select(specGroup);//组idLong groupId = null;//因为specGroup有两个相同组名,需要进行判断if (groupList.size() == 1){groupId = groupList.get(0).getId();}else {if (count == 0){count++;groupId = groupList.get(0).getId();}else {groupId = groupList.get(1).getId();}}//遍历规格参数paramsfor (Param param : jsonObject.getParams()) {SpecParam specParam = new SpecParam();specParam.setId(null);specParam.setCid(specification.getCategoryId());specParam.setGroupId(groupId);specParam.setName(param.getK());//有些数据是空的需要先过滤一下specParam.setGeneric(param.getGlobal() == null ? false : param.getGlobal());specParam.setNumeric(param.getNumerical() == null ? false : param.getNumerical());specParam.setSearching(param.getSearchable());specParam.setUnit(param.getUnit() == null ? "" : param.getUnit());//表‘tb_specification’中没有这个数据,先设置为空字符串,后面再手动设置specParam.setSegments("");int insert = specParamMapper.insert(specParam);System.out.println("insert = " + insert);}}}}}

结果(Segments这个字段是根据视频 手动添加的):

最后

因为是第一次写博客,而且数据是通过转换得来的,可能会有些问题(目前暂时没遇到),还有一个表tb_spu_detail新增字段数据的添加过程,这次没写,下次有时间再补充,如果有什么问题的话,欢迎大家随时指正,谢谢!

传智黑马乐优商城sql,表tb_spec_param,tb_spec_group和tb_spu_detail,和对应实体类相关推荐

  1. 乐优商城(十)用户注册

    文章目录 1. 搭建用户微服务 1.1 用户微服务的结构 1.2 创建 leyou-user 1.3 创建 leyou-user-interface 1.4 创建 leyou-user-service ...

  2. java传智百度_2018年4月传智黑马java

    资源内容: 2018年4月传智黑马java|____JAVA课件(IDEA版课件)          |____Java基础          |____JavaWeb          |____优 ...

  3. 【javaWeb微服务架构项目——乐优商城day15】——会调用订单系统接口,实现订单结算功能,实现微信支付功能

    0.学习目标 会调用订单系统接口 实现订单结算功能 实现微信支付功能 源码笔记及资料: 链接:https://pan.baidu.com/s/1_opfL63P1pzH3rzLnbFiNw 提取码:v ...

  4. 【javaWeb微服务架构项目——乐优商城day03】——(搭建后台管理前端,Vuetify框架,使用域名访问本地项目,实现商品分类查询,cors解决跨域,品牌的查询)

    乐优商城day03 0.学习目标 1.搭建后台管理前端 1.1.导入已有资源 1.2.安装依赖 1.3.运行一下看看 1.4.目录结构 1.5.调用关系 2.Vuetify框架 2.1.为什么要学习U ...

  5. 乐优商城源码/数据库及笔记总结

    文章目录 1 源码 2 笔记 2.1 项目概述 2.2 微服务 3 项目优化 4 项目或学习过程中涉及到的设计模式 5 安全问题 6 高内聚低耦合的体现 7 项目中待优化的地方 1 源码 Github ...

  6. 【javaWeb微服务架构项目——乐优商城day05】——商品规格参数管理(增、删、改,查已完成),SPU和SKU数据结构,商品查询

    乐优商城day05 0.学习目标 1.商品规格数据结构 1.1.SPU和SKU 1.2.数据库设计分析 1.2.1.思考并发现问题 1.2.2.分析规格参数 1.2.3.SKU的特有属性 1.2.4. ...

  7. 乐优商城之分类查询品牌查询(八)

    文章目录 (一)编写分类查询 (二)跨域问题 (三)cors跨域原理 (四)解决跨域问题 (五)品牌查询页面分析 (六)品牌查询后台代码 (七)分页查询排序的原理 (八)axios (一)编写分类查询 ...

  8. 乐优商城(05)--商品管理

    乐优商城(05)–商品管理 一.导入图片资源 现在商品表中虽然有数据,但是所有的图片信息都是无法访问的,因此需要把图片导入到服务器中: 将images.zip文件上传至/leyou/static目录: ...

  9. 学习乐优商城中遇到的坑

    本人暑假期间学习了乐优商城这个项目,历时二十天,遇到了许多的麻烦,应该会有挺多人遇到.所以想记录一下,让大家跳坑. 首先,我建议jar包的版本,都选择和老师的一样,不然会出现一些莫名奇妙的报错. 在本 ...

最新文章

  1. cookie 和session 的区别详解
  2. pytorch函数整理
  3. 窗口迅速关闭的解决办法/scanf/if/for/break
  4. audio标签下方有空隙的原因与解决方法
  5. mysql正确打开方式_MySQL中MVCC的正确打开方式
  6. python 去除所有的中文 英文标点符号
  7. Games101现代图形学入门Lecture 3: Transformation知识点总结
  8. android面试详解
  9. 分布式数据库一定会替代Oracle吗?
  10. 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)
  11. 如何明智的使用计算机,幼儿园如何正确使用计算机
  12. mysql 授权 navicat的登录数据库
  13. ArcGIS API for Silverlight/WPF/Windows Phone/Android 插件下载地址
  14. hive 求两个月之间的时间间隔(月留存)
  15. 一招教你解决Win10屏幕模糊问题
  16. java ipv6校验_IPV6地址校验(java)
  17. 家用路由器技术深入剖解
  18. JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)
  19. ICCV2019 | AutoGAN:自动搜索生成对抗网络的结构
  20. 应用智慧农业大棚控制系统

热门文章

  1. 【操作系统】请写出最多允许4人同时进餐的哲学家进餐问题的算法(视频中的代码有点错误)
  2. 使用scp局域网内传输文件速度很慢的原因排查
  3. 福瑞泰克ADC20域控制器量产解决方案升级,结合数据闭环进入新阶段
  4. jsp有关在ie中打开pdf文件的问题
  5. VC 全屏截图 局部截图
  6. “单点登录CAS集成应用系统”二次开发笔记
  7. 【动画消消乐】HTML+CSS 自定义加载动画 068
  8. e-tool学习笔记
  9. android 人脸识别踩坑实录
  10. ubuntu 移动文件权限不够