DUMP2 企业级电商项目
正常设计数据库表,按照数据流向。
~~闭环核心业务
【1用户】登录 =》浏览【2分类】+浏览【3商品】=》加入【4购物车】=》结算【5订单】+【6收货地址】=》【7支付】
【购物车】+【商品】=> 订单子项
【订单子项】+【支付信息】+【收货地址】=> 订单
===========================数据库
表结构
【可分布式唯一索引】【使用 mysql 确定 user_name 唯一性】UNIQUE KEY `user_name_unique` (`username`) USING BTREE
【支持递归的分类】`parent_id` int(11) DEFAULT NULL COMMENT '父类别id当id=0时说明是根节点,一级类别',
【可配置减少数据清洗 只存相对URL】`main_image` varchar(500) DEFAULT NULL COMMENT '产品主图,url相对地址',
【较长文本】`detail` text COMMENT '商品详情' 实际上这里 varchar (容纳65535 / 3 个字符),text 容纳是 65535个字符,空间能小则小。
【精度 总20位包含2位小数】`price` decimal(20,2) NOT NULL COMMENT '价格,单位-元保留两位小数',
【购物车序列化 关联到 session => user_id】`user_id` int(11) NOT NULL
=>【加速查询】KEY `user_id_index` (`user_id`) USING BTREE
【业务相关 实际当时付款】`payment` decimal(20,2) DEFAULT NULL COMMENT '实际付款金额,单位是元,保留两位小数',
【以数字大小清晰的订单状态 状态机】`status` int(10) DEFAULT NULL COMMENT '订单状态:0-已取消-10-未付款,20-已付款,40-已发货,50-交易成功,60-交易关闭',
【利用冗余方便】`total_price` decimal(20,2) DEFAULT NULL COMMENT '商品总价,单位是元,保留两位小数',
【组合索引 根据user_id 和 order_no 去查询】KEY `order_no_user_id_index` (`user_id`,`order_no`) USING BTREE
表关系 数据流向
【不用外键、触发器】1.数据清洗麻烦 2.分布式
【时光机字段】create_time update_time 【查业务问题 trouble shooting】
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
maven arctype webapp
===================================【git 初始化】
【场景是 托管平台上有一个项目,本地有一个项目】【与其相对的是 直接 git clone 下来】
【先去托管平台创建项目】
【本地项目 git 化】
README.md
.gitignore 直接复制一份
【git status】
【1】git init
【2】git add .
【提交到本地仓库】git commit -am "first initial commit "
【添加远程】git remote add origin url
git pull
【推送到远端】git push -u -f origin master
【查看远程分支】git branch -r
【切换到薪的分支 没有则创建】git checkout -b v1.0 origin/master
【将薪的分支 Push到远程】git push origin HEAD -u
===================================【git 初始化】
========================================= maven pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
注意 compilerArguments ,需要做支付宝集成 把 lib 发到服务器上的。
==================================================== Project Stucture
===================================【mybatis 三剑客工具 生成器、分页】
1.确定 数据库连接上服务器了么
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
创建一个 datasource.properties
db.driverLocation=C:/Dev/mysql/mysql-connector-java-5.1.38.jar
db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.1.112:3306/mmall?characterEncoding=utf-8
db.username=mmall
db.password=123456
第一部 满足了 generatorConfig.xml 后,我们可以使用 maven plugin 执行命令 => dao+pojo+mapper.xml
第二步 修改mapper.xml 把 update_time create_time 交给 mysql 内置函数 now() 处理,越让开发专注业务越好。
分页助手
<!-- mybatis pager --> <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency> <dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.17</version>
</dependency> <dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.4</version>
</dependency>
===================================【mybatis 生成器、分页】
===================================【Spring 初始化】
我们可以从官方项目摘取下配置
【宠物医院】https://github.com/spring-projects/spring-petclinic
https://github.com/spring-projects/spring-mvc-showcase
https://github.com/spring-projects/greenhouse
web容器 web.xml
Spring容器 applicationContext.xml
C:\AllWs\idea\mmall\src\main\resources\applicationContext-datasource.xml
C:\AllWs\idea\mmall\src\main\resources\datasource.properties
C:\AllWs\idea\mmall\src\main\resources\mmall.properties
SpringMVC配置 dispatcher-servlet.xml
=> inspection spring core autowiring for bean class 降到warning
locback配置
ftp配置
===================================【Spring 初始化】
====================================【首次提交 】
git add .
git commit -am '首次提交'
git push
git branch - r
git status
====================================【首次提交 】
RESTClient
FE
DUMP2 企业级电商项目的更多相关文章
- Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式
史诗级Java/JavaWeb学习资源免费分享 欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享各种Java学习资源,面试题,优质文章,以及企业级Java实战项目回 ...
- Java从零到企业级电商项目实战
欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享各种Java学习资源,面试题,优质文章,以及企业级Java实战项目回复关键字免费领取)回复关键字:"电商项 ...
- DUMP 5 企业级电商项目
[订单模块] 创建订单 商品信息 订单列表 订单详情 取消订单 订单列表 订单搜素 订单详情 订单发货 [创建订单] 购物车勾选商品 涉及 Cart Product => 一个商品 ...
- DUMP 3.8 企业级电商项目 支付宝之类
① 沙箱登录:https://openhome.alipay.com/platform/appDaily.htm 获得一个 使用环境描述 APPID.授权回调地址.沙箱钱包哪里下载之类的 ② 沙箱环境 ...
- DUMP4 企业级电商项目 —— 对接支付宝扫码支付
延展 <谈谈微信支付曝出的漏洞> [联调 DEMO下载地址]https://docs.open.alipay.com/194/105201/ [内置 一份 说明文档可做参考] [impor ...
- DUMP1 企业级电商项目
系统:centos6 配置mirror阿里云 https://opsx.alibaba.com/mirror 远程管理首选:ssh 账户密码登录(ssh user@host) 或者 本地私钥连接服务器 ...
- 从0到上线开发企业级电商项目_前端_01_sublime使用技巧
一.用户设置 { "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme", &quo ...
- DUMP3.5 企业级电商项目
购物车模块 加入商品 更新商品数 查询商品数 移除商品 单选/取消 全选/取消 购物车列表 [浮点型商业运算精度丢失问题]ej1st 一书提到 float double只适合科研计算,BigDeci ...
- DUMP3 企业级电商项目
[开发模式]controller - service(合法校验问题) - dao 反过来也没问题 用户模块 登录 注册 用户名验证(实时反馈前端) 忘记密码 重置密码 退出登录 更新用户信息 获取 ...
随机推荐
- 【Python 24】52周存钱挑战4.0(函数)
1.案例描述 按照52周存钱法,存钱人必须在一年52周内,每周递存10元.例如,第一周存10元,第二周存20元,第三周存30元,直到第52周存520元. 记录52周后能存多少钱?即10+20+30+. ...
- consul 搭建
windows 1. 下载consul https://www.consul.io/downloads.html 2. 解压至consul_1.4.2 3.配置环境变量 path下新增D:\work\ ...
- centos7下kubernetes(14。kubernetes-DNS访问service)
我们在部署kubernetes时,会自动部署dns组件,其作用是通过dns解析的方法访问service coredns是一个DNS服务器,每当有新的service被创建,kube-dns会添加该ser ...
- Redtiger SQL注入练习(一)
感觉会的东西太少了,以后要多练习,多写博客.要坚持学习,一定不能放弃,为梦想奋斗. redtiger 这个平台早就开始做了,但是才做到第4关.... 第一关: 打开题, 先随便试,后来发现点击 Ca ...
- 写个.net开发者的Linux迁移指南
前言 为什么要迁移到Linux 首先我个人还是有点软件洁癖,以前是穷酸学生的时候也是用盗版的用户,后来在知乎被洗脑终于有了点版权意识.然后便有了能用开源软件的就用开源,实在不能就选社区版或者免费版.于 ...
- FineUI十周年纪念版即将发布(基于像素的响应式布局,独此一家)!
[新版预报]FineUI十周年纪念版(v5.0.0)即将于2018-04-23发布! 官网示例已更新:http://pro.fineui.com/ 特别助攻:基于像素的响应式布局,FineUI独家秘笈 ...
- python之yagmail模块--小白博客
yagmail 实现发邮件 yagmail 可以简单的来实现自动发邮件功能. 安装 pip install yagmail 简单例子 import yagmail #链接邮箱服务器 yag = yag ...
- Web项目中出现乱码
(不知道怎么写才好) 分两种情况: 1.如果是 get 方式 单独修改: new String(str.getBytes("原来的编码"), "想要的编码") ...
- 【转】shell脚本中如何传入参数
(1)直接用$1,$2取传入的参数vim /root/test.sh#!/bin/bashif [ $1 == "start" ] then echo "do ...
- 其他综合-fdisk一键分区操作-无需脚本
fdisk一键操作分区-无需脚本(根据自己的实际环境操作) 为了让在系统里能够显示新添加的硬盘已知有两种操作方法 : 1.重启 2.输入echo "- - -" > /sys ...