00:02
好看我屏幕啊,我们把这个圆形解压一下,然后解压之后呢,咱们先把这个需求啊,先把它先看一看。呃,这是一个书城啊,其实它里面的功能比较多,但是呢,对于大家需要掌握的,需要实现的地方呢,其实不多啊,其实是比较少的。上面这边都是假的轮播图啊,包括这边的这边的分类,咱们这些都不用管。那么这是我们显示的一个首页。在这个首页上呢,这边会展示一个叫所谓的叫图书列表。这个图书列表呢,大家可以把它啊,这个是需要咱们把它去实现一下的。你看这边还有一个根据价格进行筛选。下面这边还有分页,是不是和咱们做的那个库存管理系统很像啊?是吧,所以说前面的水水果库存系统,如果说筛选的功能啊,带有关键字。
01:02
啊,这个筛选这个功能包含分页,如果能够把它搞定,那这块的话应该就问题不大。好,这是我们的主页面,那么呢,我们。还有一个登录和注册,登录和注册呢,咱们今天可以先不用不用做啊,这叫登录,登录可以做一下啊,注册可以先不用做,这是登录,登录呢有用户名,有密码。然后根据用户名和密码,咱们就可以进行登录了,那么还有一个是叫立即注册,这是一个注册的功能,注册的功能我们今天可以先不做。今天可以先不做啊好。那么如果我登录成功了,这个页面咱们就不需要了,这边还要再点一下超链接啊,才能转到主页,因为咱们在一开始讲的时候呢,我就已经把登录和展示主页面这两个功能把它把它绑定在一块儿了,就不要再出现中间的页面了啊。那行,再来当我们一本图书,我们可以点击加入购物车,当我一点击加入购物车之后,它就会在这里面会显示我当前购物车里面的一些信息。
02:01
然后呢,这个地方呢,我也可以对购物车进行编辑。也可以把当前的这个购物车项可以把它删掉,点击删除可以把这项删掉,然后呢,我这边可以点击去结账,但我一点击结账就表示我就生成了一个账单啊,这样我就结账就结好了,我们就不用再去考虑物流所谓的物流信息了。行吧,同学们,那个我们就不考虑了啊,咱们是简单的去模仿一下就可以了。啊,就是这样的。好,这是我们,呃,这是我们这个叫书城的前端的这个页面,那咱们还有一个是管理员的登录。啊,还有个管理员当中哦,另外有一个就是我如果结账成功了,这边有个超链接叫我的订单。这个点击我的订单啊,是可以看到我以往的一个订单的一个信息的,我可以点这个查看详情,可以看到这一个订单内部到底买了哪些东西,诶也是能够看到的。哎,就是这样。
03:00
再来。再来。那还有是。后那个叫管理员的后端啊,我们一起来看一下啊,稍等一下,呃,我在哪边点过去呢,这边这边叫后台管理。啊,在后台管理里面,我们是这样的同学们。大家可以通过这个登录,你输入用户名和输入密码进行登录,如果你当前是一个普通用户的账号,我们就到前端页面上去。如果你是一个管理员的账号,我们一点击登录,他就给我跑到那个,呃,后台管理的页面上去。后台管理的功能比较简单,主要的是对于两个实体进行管理,一个是对于对于我们的图书进行管理,我们可以添加图书,输入名称,输入价格、作者、销量、库存,然后点击提交。啊,这样我们就表示新增了一本图书。然后呢,我们也可以对一本图书进行修改,然后呢,我们也可以。我们也可以删除这本图书。
04:02
好,我要稍微说说一下,这边有两点需要说明一下,第一个是我们不考虑图片的上传功能。我们以前是会给大家讲这个文件的上传这个功能的啊,那现在咱们在新的版本里面,咱们把这个功能把它砍掉了,因为我们讲到后面框架spring mvc的时候,我们还会再去讲这个文件的上传啊,所以这块呢,我们就把它砍掉了。啊,所以大家在新增图书的时候,不用去考虑这个图书这个封面的问题行吗?同学们啊,你就在这边再写一个封面啊,叫封面冒号搞文本框啊,文本框里面这个封面你可以就随便输个图书的名字吧,啊封面图片的名字就可以了。好。另外有一个是删除的时候,第二个需要注意的是,我们删除的时候这一本图书啊是假删除。什么叫假删除呢?大家想一想,我们在数据库设计的时候,这是图书,是不是我们还会有订单?那你想想你的订单啊,你的购物车里面是不是会引用我们图书的这个组件啊?
05:05
如果说你把这本图书删掉,是不是会把相关的订单信息啊,购物车的什么信息啊,是不是也要连同把它删掉啊?要不然你删除表,那子表还有对它的引用的,那不就删除失败了吗?是吧?所以我们此数的删除指的是假删除,我们只要对这个图书的状态做一个修改就可以了。比如说默认情况下,默认值零。零表示正常状态。比如说负一表示或者一绊示的是已下降。啊,或者叫已删除,就这样子。啊,就表示一下他的状态就可以了。OK。那么还有一个是订单管理,订单管理呢?管理员的订单管理可以看到所有人的订单。然后这边也叫点击发货,但我一点击就把这个订单的状态就修改了,就改成已发货了啊,或者叫等待发货,这个无所谓好不好,就这个状态问题,你点一下就把它修改掉了,然后也可以查看详情,当我一点击查看详详情的时候,可以查看到这个订单的详细情况。
06:06
那么订单的详细情况我说过,他和我们的购物车这个情况比较像。当前这个订单里面有多少本书?啊,每本书买了价格是多少,买了几本等等等等,最后一个总总金额。好了,基本上呢,这就是我们书成的一个。呃,一个需求啊,基本上就是这样的。OK。那下面呢,我们需要对我们的书城啊,我们需要来做一个数据库的设计。稍等一下啊。首先我先到这边来。首先呢,我先来新建一个书城的项目。溜出一个model。好,把这个勾把它勾上,下一步我们这个称呼叫PROJECT24-book。OK。我新建了一个项目叫PROJECT24。好了,然后呢,我把这些页面啊,我全部把它粘进来。
07:03
页面。啊,把它粘进来CTRLC。站到我们当前的web下面去,那现在呢,我想给大家讲一个新的内容,就是说我们的页面呢,我们不要放在web下面,因为你放在web下面,别人可以随意的去访问。我们把它放在web INF下面。放在外边硬分下面,别人是访问不到的,那你说老师那别人访问不到不就不就不对了吗?我们可以通过其他的方式让别人能够访问到。这个sta里面是样式表啊,JS文件啊,等等等等图片啊,那这个文件咱们还是把它放到外面去行吧,同学们。放到外边这个下面。稍等一下啊,稍微有点慢。OK,行,Static在这呢啊,没有问题,然后web里面有pages pages打开有cut manager or the user。
08:04
好,就是这样,那么这个index.jsp把它删掉。那行,然后呢,再来我们回到这个这个项目,下面我们写一个叫read me。点TXT。好,第一步我们做的是需求分析。那第二步我们要做的是数据库设计。大家帮我想一想啊,大家帮我想一想,我们刚刚的刚刚的这个需求分析啊,我们数据库我们分为三步啊,第一步是抽取实体,第二步分析实体里面的属性,第三步要考虑实体和实体之间的关系,是吧?分了三步,那请大家帮我想想第一步实体我们该有哪些实体呢?图书肯定要的。嗯,第一个肯定要图书。用户嘛。是吧,还有吗?好订单。购物车行还有吗?
09:02
好,还有一个叫订单详情。啊,这个我称之为叫购物车项。叫购物车项。我就把它分成总共有五个实体。第一个是图书。图书我们就称为叫book。用户我们就称为叫user了,订单我们称为叫order病。啊。购物车项,我们称之叫卡。订单详情我们称之为叫order item,好,就这样子。好,分成这么几个。OK。跟总总总归有点不对齐是吧,算了吧,不对齐就不对齐吧,就这样啊。好,这是第一步,实体的分析。第二步。第二步,我要去考虑尸体属性。啊,试题属性分析。帮我想一想,第一个是图书,图书它应该有哪些属性呢?
10:04
好,我们来看一下啊。来。说明。然后。作者。价格。销量。库存。封面。哎,状态对的。是吧,那编号编号其实我们也可以不要啊,现实生活当中的书可能会属性很多出版社啊。第几次印刷呀,什么ISBN号呀,是不是同学们会很多啊,咱们这边就就写这么多吧,这第一个图书。好啊,还有什么利润,利润不会在这里面出现啊,再来下面一个是什么,下面一个是用户。用户用户我们只需要去看这个注册就可以了。好,第一个用户名。
11:02
用户名。密码。邮箱。验证码不需要。啊,验证码是不需要的。用户名、密码、邮箱差不多。啊,就这三个就可以了。当然有可能还会有其他信息,没关系的,咱们先写着行吗?发现有其他的咱们再加。啊,用户名密码邮箱好就这样。再来。我们还有什么呢?再往下看,下面一个叫订单。好。订单,我把这两者把它颠倒一下啊。好订单,订单里面应该有什么呢。订单编号可以。啊,订单编号。订单编号,订单日期是吧,订单金额。
12:01
还有吗?图书,图书有吗?订单里面是没有图书的,因为我这一个订单可能买了十种图书。十种图书,每一种图书买五本,那那个信息是属于订单详情信息。我们的订单里面只描述,订单当中只描述谁在什么时间,花多少钱。这叫订单。具体买的哪些内容是在订单详情里面的,行吧,同学们。所以订单的数量咱们可以把它描述出来,这个没事啊,订单金额,订单数量。好订单数量,订单状态是吧。比如说发货啊,什么已发货未发货是吧,订单状态就这样子。啊,订单的编号。订单日期谁在什么时间,那么是不是缺少一个谁要?是不是啊,用户把它写上去啊,谁。
13:00
在什么时间?花多少钱?买了多少的东西是吧,当前这个订单的状态是什么样的,就这样子。好,下面是叫订单详情。订单详情里面应该有哪些内容呢?帮我猜一猜。第一个图书。肯定要有的。是不是?然后数量肯定要有的某某一种图书,对吧,钢铁是怎么炼成的是吧,废铁是怎么炼成的啊,图书数量买了五本是这意思吧,然后当前的这个订单详情属于哪个订单。是不是?是吧,所属订单。就这样子。啊,买哪一本图书,买了多少。好,其实我们可以参考哪个呢?我们可以参考购物车。哪一本图书?买了多少数量?就这样子。再来还有一张表,叫购物车。购物车项。
14:02
购物车箱里面应该有什么呢?图书?数量。啊。叫所属用户。是不是呀?要不然人家哪里知道这个勾上像是谁的呀?我要我要保证我这次没有结账的,下次我再登录进来,还是加在我购物车里面未结算的那些购物车的那些项目。你不能说我再次登录把别人的购物车里面加到购物车信息加到我这里面来肯定不行吗?所以我肯定要知道这个购物车项是属于谁的。是吧,同学们。啊,叫所属用户。差不多,我们暂时就写这么五个。好,我们去后台去看一下后台管理啊,这是一本图书,咱们可以添加图书,我们看一下名称,价格,作者,销量,库存。名称作者,价格,销量,库存封面,对的吧,啊,应该没有问题,再来还有个叫订单管理。
15:02
订单管理和刚才是一样的啊,咱们就不看了啊,是一样的。行,差不多。那咱们可以把这个一雅图,咱们可以把它画出来。图书我们来看一下啊。图书。好,我们先写一下啊,这是个图书。图书,那么图书有1234567,总有七个。所以咱们把它画一下。稍等啊。这个我有点强迫症,我把这个线画细一点啊。图书。好,这个字,九号就九号吧,无所谓。好一个。两个。哎,这真是的。
16:02
好。然后呢,三个。四个。五个。总共有几个?七个是123456。好,还差一个七个。OK,差不多。啊,就这样。好,咱把线把它画上去。OK。第一个书名。啊,我们画这种图啊,是比较比较费时间的啊,但是我不认为这是一个浪费,通过我们画这个图能够让大家对数据库能够深刻一些。所以我画图的过程当中,大家可以去去去记忆啊,到底这个数据库里面有有哪些属性。
17:04
啊,说明作者价格销量。库存。库存。然后呢?封面。然后状态。是吧,同学们,哎,这是我们一个图书的信息,好再继续第二个是我们用户的信息,用户。所以我们再来画一个用户。啊,用户把它画到这。OK。这叫用户。用户好。那么用户。用户里面有,用户里面有哪些信息呢。用户,我们有用户名,密码,邮箱行,咱们把这三个把它画在这。好,这是一个。拷贝一个。
18:03
Could you say can you be。Copy过来第二个。第三个。OK,那么这三个咱们把它写一下,第一个用户名。第二个。密码。第三个有效。咱们把线把它画一下。这是用户,第三个是我们的订单。第三个是订单。订单呢,我们就把它画在。这个地方订单。按道理我们这个一架图啊,数据库设计的议价图,我们有专门的软件的啊,这个软件我们就就不介绍了,就直接通过画图工具,反正比较简单啊。按道理来说,咱们需要通过专门的软件去画,至少你得用个vis是吧。
19:02
这个再怎么简陋的话,也得用个vis啊,用画图工具一点,这个太那个了是吧,太太太随意了啊。订单订单编号。我们把它写一下啊。呃,123456,总有六个。好,第一个订单的编号。把它放在这儿。一个。好拷贝一下啊。CTRLCCTRLC把它放到这。第二个。第三个。第四个。好,第五个。第六个,咱们总有七个是吧。几个来着?123456 1234566个吧,那就六个差不多啊。行,咱们把它换一下。
20:02
好,第一个叫订单编号。订单编号,第二个是订单日期。好,第三个是。第三个是订单的金额。订单金额。下面一个是。订单。日期有了编号,谁在什么时间,花多少钱,订单数量。可以吧,然后还有什么。用户,谁买的吗?用户叫所属用户吧,稍等一下啊。所属用户写一下啊。所属用户。好订单的状态是吧。订单状态。好,这是订单,那么我们会有订单详情吗?订单详情123图书数量,所属订单行,咱把它写一下。
21:00
好,咱把它画到这。订单详情。数量哪一件商品啊,多少数量属于哪个订单是吧。差不多就这样吧。好,差不多啊。我们换一下。OK。好。这个指的是商品。第二个是数量。第三个是所属订单。OK。然后再来,我们还有一个属性。
22:02
这个属性叫购物车项。购物车像。那么购物车项哪一件商品?哪一件商品?然后呢,买多少数量。属于哪个用户是吧,同学们。啊,有三个属性,OK。好,就这样子。为了这个呢?好,我们写一下,这个叫商品。商品。然后数量。所属用户,OK。那这是第二步分析属性,第三步我们要考虑他们之间的关系,先保存一下啊。我把它放到今天的这个目录,放到这里面,放到这里面。
23:04
数据库设计。帮我想一想,请大家帮我想一想。呃,用户和购物车之间,和购物车项之间是什么关系?应该是一堆多吧。一个用户会有多个购物车相貌。好。是不是啊,我说的是购物车项。不是购物车,大家不要把这个看成一个整体啊,来,再来看一下啊。这一行。这是一项。能听懂吗?下面这个这也是一项。能听懂不啊,这叫购物车项。所以我们再回到这边来啊,一个用户它对应的会有多个叫购物车项。OK,没有关系,我们在P接入类里面,我会满足大家的要求啊,我会新建一个类叫购物车,但是呢,它不和我们数据库里面的表对应。它其实不用和表对应。
24:00
啊,好一会儿再说啊,所以我这边呢,我就可以写一个叫一对多。一对多好,就这样子再来。我们的订单啊,订单详情。和订单他们之间是什么关系啊?订单和订单详情之间是什么关系啊?一对一吗?我说过,这是我的一份订单。这个订单只表明了谁在什么时间花多少钱买东西了,买的数量是多少,那请问一下这一个订单里面可以可不可以包含五本书或者十种书?可不可以?可以的吧。可以吧,同学们,我包包含十种数,这是没有问题的。所以这一个订单里面会包含多个订单详情。所以。
25:00
一个订单。会对应的会有多个订单详情。再来,用户和订单之间是什么关系?一对一吗?一对多吧,这是一对多,你不能说你这用户在这个平台上就只能买一次东西是吧,那肯定不行的,一个用户会有多个订单是吧,就这样。订单详情里面是不是有商品,其实就是图书啊。其实就是图书,所以图书和订单详情之间是什么关系?好好想一想啊,好好的想一想。好好的想一下,请问一下,假设张三张三他有一个订单详情啊,张三的某一个订单里面,他有个订单详情,允许出现钢铁是怎么炼成的。李四也有个订单,也对应的包含了一个订单详情,里面能不能出现钢铁是怎么炼成的?可以的吧,可以的,那么图书和订单详情之间是什么关系?
26:01
应该是一对多吧。一个订单不能是多利多啊,多利多指的是什么?一个订单详情里面包含多种图书啊。这是不允许的。一个订单详情。看好了。再回到我们的页面。订单详情,我刚才给大家说的订单详情,你就参考购物车这一项,就相当于是一个订单详情吗?这一项我指的是这一行。能听懂吗?这一行就是一个详情。啊,就这个详情项,一个详情项只包含一种图书。能听懂不行,慢慢的去琢磨一下啊,一会儿我给大家时间琢磨,看来大家这个还不能够,这个怎么说呢,就是这个虽然是生活的这个业务逻辑是吧,大家还没有完全这个融入生活是吧。所以说啊,咱们一本图书会在多个订单详情里面出现。啊,会在多个订单详情里面出现。就是这样的。
27:00
但是我们多个订单详情可能都是同一本图书,这是没有问题的。啊,这是没有问题的。好了。还有什么关系没有表述出来吗?还有一个是购物车像和图书之间的关系。是不是啊,购物车像和图书之间的关系,我们没有把它标注,最好把购物车项把它画到上面去。啊,这个其实比较好啊,咱们画在下面的是吧,画在下面的稍等我一下。这个。剪切一下啊。走到线走到这边来。这玩意可以删掉了啊。行,我把这个往下挪一点。我把这项往下挪一点啊。挪到下面。好,然后呢,我这边画个菱形。然后呢,这边画一根线指向它。
28:00
这边的话你先吃羊汤。好,然后他们之间是一对多一对多。然后这根线把它去掉。是吧,把它去掉,然后呢,这个把它剪切过来勾这下。剪切过来可以吧?然后这个商品啊,数量啊,这个图书啊,我们可以把这个线挪到。读到右边去啊。稍等一下啊。捡钱挪过来。然后把这三个。剪切挪到这边来。这个挪挪的过程还不如自己写呢啊,商品数量所属用户自己写吧,行吧,同学们。这个这个太太烦了啊。写一下吧。商品。数量。所属用户是吧,同学们有三个啊,写写一下算了啊。商品。数量。
29:02
所属用户。好。然后咱们把这个线画一下。好,就是这样的。然后用户他会有多个购物车项。好,把这关系把它表述一下。一个用户会有多个购物摄像。然后购物车像和图书之间的关系。和这边和和和这个关系是一样的。一本图书可以在多个购物车箱里面出现,是不是?所以一个图书。可以在多个购物车厢里面出现。好,就这样。这是他们之间的一个关系,我们把它保存一下。好,把这图把它变小一点,哎呀。挡着了啊。
30:01
差不多就这样啊。好了,就这样子把它保存一下,OK。那再往下我们就应该是P类的设计了。
我来说两句