重温电商项目完整笔记(Undo)

这篇博客详述了一个电商项目的各个模块,包括数据库设计(decimal、bigint、唯一索引)、项目初始化(Mybatis、SpringMVC、Git)、用户模块(MD5加密、Session管理、Dao层接口设计)、分类和商品模块的递归查询,以及解决浮点数精度丢失问题。还探讨了MyBatis的PageHelper分页和动态SQL。
摘要由CSDN通过智能技术生成

一、数据库

decimal

	数据库中表示较高精度的类型,eg:decimal(20,2) 20位有效位,保留两位小数。可用于表示价格、金额。
	在java中可以用BigDecimal类型,来进行数据运算。

Undo:商业运算精度丢失。

bigint

	可用于订单编号等较长数字的表示。
	在java中对应long类型。

订单明细表

	商品id、图片、详情,不可以直接去商品表查询,因为这里是一个快照。

唯一索引

  1. user表中的username
  2. order表中的order_no

单索引及组合索引

	使查询更加快速
  1. mall_order_item 中的order_no_index单索引
  2. mall_order_item 中的order_no_user_id_index组合索引

二、项目初始化

为什么选择Mybatis

参考:https://blog.csdn.net/leijie0322/article/details/124662041

详解SpringMVC

Maven/git

mybatis——Generator

快捷迅速的生成dao层接口、pojo层对象、表格的xml映射文件。
now() 获取当前时间戳的函数。

mybatis——Plugin

几年前第一次配这个项目的时候还在用,搜了一下现在居然闭源了,说是大佬转行了 现在是2022.03 裁员风很大,hc缩招风很大, anyway,我还是要做一个逆流勇进的,憨憨。

spring-petclinic/greenhouse/springboot

马克,尝试运行一下这个程序

idea快捷功能

/**+回车 注释
psvm + Tab2 主函数
sout + Tab
2 输出

三、用户模块

功能:

  1. 登录
  2. 用户名验证
  3. 注册
  4. 忘记密码
  5. 提交问题答案
  6. 重置密码「忘记密码、登录状态」
  7. 获取用户信息
  8. 更新用户信息
  9. 退出登录

学习重点

  1. 横向越权、纵向越权安全漏洞
    横向越权:攻击者尝试访问相同权限用户资源
    纵向越权:低级别攻击者尝试访问高级别用户的资源
  2. MD5明文加密、增加salt值
  3. Guava缓存使用
  4. 高复用服务响应对象的设计思想及抽象封装
  5. Mybatis-Plugin(MybatisX)使用技巧
  6. Session使用
  7. SpringMVC数据绑定(慕课视频)

搭建

  1. 在controller包中创建portal包,代表门户、前台
  2. 创建UserController类,添加@Controller以及@ResquestMapping注解
  3. 开始编写方法

笔记

1. 注解
2. session
为了保存用户状态而创建的变量
3.高复用的返回对象

equal注意点

注意避免有可能为空的字符串出现在前面

static

静态方法和静态变量一样,属于这个类,而不属于某个对象,所有对象共用,在类装载时装载。

Md5加密工具对字符串进行加密的使用

  1. 通过信息摘要单例的构造函数获取信息摘要对象MD5
MessageDigest md5 = MessageDigest.getInstance("MD5");
  1. 获取字符串的字节数组
    原因:信息摘要对象是对字节数组进行摘要。
byte[] digest = md5.digest(bytes);
  1. 将摘要数组中每字节转换成16进制并拼在一起

完整代码

public class MD5Tool {
   
   public static void main(String[] args) throws Exception {
   
       /*--------------字符串--------------*/
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值