文章目录
项目难点
1. 结合框架、注解
本次项目通过使用注解将所有命令进行分类,利用反射机制取得注解并将不同的命令通过key-value的方式存入Map中。
(1) 在实体类给项目中四张表中的字段提供属性,得到get和set方法,所以引入了@Data注解
@Data作用:自动为当前所在类提供getter、setter、toString、equals等方法。
eg:使用注解需要在idea中安装lombok插件
以Account表为例:
(2)由于不同类型用户(管理员、客户)登录后看到的页面不同,可以采用注解来进行分类
(if-else也可使用,但是代码量太大,不考虑)
其中:
AdminCommand:管理命令
CommandMeta:存放注解名称
CustomerCommand:客户命令
EntranceCommand:入口命令
注解释义:
1、@ Retention(RetentionPolicy.RUNTIME):
注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在
2、@ Target(ElementType.TYPE):
说明了Annotation所修饰的对象范围:用于描述类、接口(包括注解类型) 或enum声明
2. 数据库多表操作
每个用户购物时下单后产生订单形成订单表和订单内包含的商品形成订单项表,订单和订单项之间是一对多的关系,在查询订单时为了简单易行,在resource中创建