00:02
大家好,欢迎继续收看上硅谷视频课程,我们继续来开发上一中项目。之前内容中呢,咱们完成了管理员系统中的医院设置模块开发,那咱们下面开发第二个模块,数据字典的这么一个惯例,那什么叫数据字典?首先给各位做个介绍,数据字典的大家可以理解为是咱们系统中一些常用的数据,或者说是一些固定的数据。比如说里边有这么几个数据,咱们来看一下我的课件中。假如说大家知道在我们一个国家是不是有省市三级联动数据,而这个省市区的数据是不是固定的,包括咱们中国是不是有56个民族,这个民族数据是固定的,另外比如说有学历,学历中包含这个本科、专科、研究生、博士等等,这些是不是一些固定的数据?
01:01
而这些固定数据咱们一般不需要改变,但是咱们在系统中是需要,所以说咱们可以把这个数据做一些管理,而这管理这个数据的部分我们就称为叫数据字典。那咱们下面就来开发这个数据字典模块,开发之前呢,首先给各位先介绍一下,咱们首先要建一个税务表。然后这个表我们该怎么创建,给各位做个说明,然后大家看我在这个资料中的SQL中有一个就是预约挂号系统的表结构,咱们之前呢,在里边用了一个表,就是咱们之前说那个医院设置表,然后咱们现在用第二张表就是这个表。大家看。首先呢,我们现在建一个新的数据库,就是预约括号CMN这个数据管理的这个数据库,然后里面建个表,叫这个D口,第一课表就是我们的数据字典表,然后在里边有它相关的字段,那这字段是什么?但是各位来看一下,咱们看我的课件图,就是里边的这些字段,那我们来做一个说明。
02:11
首先大家看啊,在我这个就是相关的字段里边的第一个字段,就是咱们表本身有一个ID,然后里边还有一个字段叫ID,这两个字段很重要,给各位来写一下,第一个是ID。第二个叫parent ID,那什么意思呢?因为咱们从这数据看看有一个层级关系,什么叫层级关系,比如说咱看里面的这类数据,大家看啊,就是我们的这个位置。大家注意,咱是不是有省市区的这个三级啊,比如说我现在在河北省,那河北省下边是不是有很多的市啊,比如说石家庄市,什么保定市,然后在市下边是不是有它的区县等等,这些就是相关的行政需要,所以这里边有一个层级关系,另外比如这个学历,学历它是一个一层级,学历下边是不是有本科、专科、研究生等等,包括民族,下边是不是有不同的民族。
03:13
所以这个数据是有一个层级关系,而咱们怎么表述层级关系,那就用这种ID和pattern ID做表示,另外除了这两之外,里面还有你这个名称,包括值,包括编码,包括时间等等一些信息,所以这是关于咱们一个表,那这表我们要怎么表示咱们这个新闻关系呢?然后下面给大家来举几个例子,咱们来具体看一下怎么表示。比如说现在我这么画,假如现在我这里边呢,有我们这些相关的数据,比如这是我们的第一个数据,假如说它的ID呢,比如这个ID我们是这个。一然后这里边,比如说我们就代表咱们那个,比如这是name啊,就代表我们那个。民族。
04:01
民族,然后大家看民族是不是咱们到第一个层级啊,而这里边的派D我们可以起个值,我们就是零,大家记住,当你的party等于零,那就表示它是我们的第级这么一个内容,或者它的顶层的内容,然后大家注意在民族下边是不是有它的具体的民族国,那咱做个表示,比如现在我这ID,比如说是幺幺。然后大家看,假如这个民族呢,我们是这个汉族。大家注意汉族是不是属于民族里边的,比如说他这个汉族是民族下面一个第二级,比如这个是二级,那大家说这个怎么表示出来呢。该怎么做?我觉得各位应该能想到民汉族的帕ID的值是不是就是一有这个一是不是就是民族这个ID值了,所以他用这个来做个表示,让你这个值跟它是个对伍关系,从而表示出它一个层级的关系,比如说下面可能还有,那我们依次表示,但是民族就是有民族,下面比如有汉族不同的民族。
05:09
所以这是我们数据自检中一种表示方式,咱们一会儿肯能就这么来做,然后这个看到之后,咱们看下这张表,这个表呢,我已经提前创建过了,然后各位看啊,首先数据库预约挂号CN。里边有个D,然后D里边呢,各位可以把这数据直接给它放进去,然后数据中咱看下我这数据啊,首先第一个我这名字叫全部分类,然后它的PI值是不是零啊,所以它就是第一级在这个下边你看啊,咱这么来看。是不是有三个一有,比如你的证件类型,民族、学历,医院等于省是不是属于你的二级,这是咱们再看。假如现在在里边这个省下边你看有什么。再看省下边它里面的数据,各位看啊,这个省的ID是不是这个叫八六,然后下边是不是应该有它的市,包括等等像内容,另外咱们看一个有数据的,比如这个医院等级是意外1万,下边是不是有这个一级、二级、三级等等,是不是这个等级,所以它里边用这种结构来表示我们里边这个层级的关系,它就是这么表出来的。
06:23
各位把这个给要知道。然后咱们后面做操作,肯定就是按照这种形式进行我们的数据的这么一个相关的操作,所以这是关于咱们的表的说明,各位按照我提供这个语句,把我们的数据库和表给它先创建出来。所以这个是我们做了一个说明,然后说完之后,咱们下面呢,就来开始开发这个具体功能,开发的时候呢,还是按照咱们的前后端开发的流程,首先我们先写后端的接口,然后再开发前端的页面,咱们还是按照一个过程做一个具体实现,那咱首先先来开发我们的后端的接口。
07:06
那怎么做,给各位写一下,首先第一个咱们来到我们这个后端,也就是Java代码部分,大家看啊,之前呢,咱是在这个service里边,我们建了一个模块叫service好系统,而我们下面在里边是不是要建个新的模块,专门做咱的数据管理,或者说数据字典开发,那我下面在里边我来建一个新的一个模块。W做一个创建。比如现在我新建一个模块,然后模块就是一个微微。然后咱们点下一步,在里边给它起个名字,我就叫。Service c mn。然后咱们点下一步,把这个模块先做个创建,这是我们的第一部分,然后创建之后在里边写上相应的类,包括它的相关的配置,这个叫写完整,咱们把这个先做创建。
08:04
等他加载完成,然后再往里边再写我们新的内容。啊,各位看啊,现在已经加载完成了,然后加载完成之后在里边我们就可以参照这个service hot做操作,大家看啊,在service hospital里边的home中,它里边没有特别依赖,因为依赖咱都放到了service中,这一步我们就不需要了。然后除了这个之外,往下看下面的咱是不是可以写它的配置文件呀,就不可以那个配置文件,这个文件你可以写properties,也可以写这个样子格式,那我还仿照我们的好,里边我还是写一个这个purpose这个格式的配置文件,我就把它直接给它复制过来,然后改成我们这个效果。然后咱们改一下啊,首先第一个它的端口号呢,之前是8201,咱现在换一个我叫8202,然后第二个他这服务名字我们叫service c mn。
09:06
然后下面有数据库,有这些,这些不需要变化,所以咱们第二部分把这配置文件我们就做到了,然后做到之后我们进入到第三步,第三步呢,咱们肯定是写它的包的这么一个结构,包括里边写上启动类,写上它的这个配置类,Service map和CTRL这些部分。那咱们下面给他来写一下。首先啊,我在里边,我先创建这么一个包,咱们先做这么一个创建。这个包我们叫com.at硅谷。点上这个预约挂号,然后点上CMN。把这个我们先创建出来,然后创建之后呢,在里边我们先创建一个启动类。右键直接新建一个启动类,启动类我给它起个名字,我叫service。
10:07
CMN。Application。把这个自我创建,然后创建之后在上面我们首先加上行类的一个注解,就是spring BOO vacation,然后里边加上一个main方法,Main方法我从这些项目中,我们直接复制给它快速改一下就可以了,我把这个拿过来,然后复制到我们当前这个类里边,把它的名字给他快速改一下,改成我们当前这个名字。然后咱们在这个行类上边,我们再加上另外一个注解,就是咱们之前用过这个comment看。指定我们扫描那种规则就是com.at。啊,所以这样的话呢,咱们现在把启动类就创建了,启动类创建之后在里边呢,我们把它的相关的包都创建出来,那这里边我来做一个创建。
11:05
首先我先创建第一个包,就是里边这个con,因为咱们后面需要配置类,然后我再创建一个包,就是这个map。包括里边有service,还有这个controller,咱把这几个包都创建出来。Service,还有controller。这样的话我们就完成了,完成之后呢,首先咱先把配置类做创建,那这个配置类我就直接偷懒项啊,我从之前项目中复制过来,咱们快速改一下,因为代码都差不多,咱就改个名字就可以了,也都是类似代码。然后我起个名字就叫c mn conig在里边我们看一下,你看啊,这里边写的首先有一个maps,看你在后面要找到map那个试验类的对象,然后这个包我们就改成map那个包,我们给他改一下啊。com.at硅谷预约挂号,这里边叫c mn ma,然后下面这里边有一个那个分页的插件,咱后面应该会用到,咱们先放到这里。
12:15
这是一个配置类,然后配置类写完之后,下面咱就开始创建这个service map,还有这个C了,那我首先还是先创建这个map,我还是用它,咱们给它改一下啊,因为都差不多。Map,首先我们给它改个名字,因为他做的是我们这个数据字典,我就叫这个D口map b。给他做创建,创建之后让他做这么一个继承,然后继承中等里边,就是继承这个base map里边加上那个实体类,实体类呢,我们之前在model中都引入过了,那我们来看一下这实体类啊,咱们来找一下。实体类应该是里边这个CMN中的是不是这个D口,所以我把这个D口给他就拿过来放到这个位置。
13:09
注意这个包给导错,这样的话map就写完了,然后写完map之后,在map中会有它对应的文件给到后面用我们再写进去啊,因为它大部分方法里面都封装了,然后除了这个之外,肯定有这个service,我把service在里面创建。然后给它改个名字,我叫这个D口。Service在里边加上这个叫。有service,这是一个interface接口,然后里边有它这个实现类,首先我们先来一个包。MTL,加上它对应的实现类,我把实现类在在里边也是做个创建,我将这个d service m TL。这样的话我们就创建出来了,创建之后把里边相关的内容咱给他快速改一下,这里边改成叫这个。
14:05
D口。改成它啊依赖引入,然后这里边改成这个叫D口。Service。啊,它的依赖也是引入。然后这里边啊,我们看一下这个位置,我们叫。所以这样的话呢,现在咱就把里边这个相关的类和相关的准备工作都完成了,包含咱们项目的创建,以及里边的配置文件,包括情类,还有里边的配置类service map都写完了,最终就是写这个controller,那我把ctrler在里边快速的创建。我们写一个D口。CTRL。然后CTRL上面首先我们加一个注解,就这个rest。Ctrler,然后再加一个request map,就是它那个固定。
15:03
包括里边写上我们路径那个名字啊,那这个路径呢,我就从课件中复制一下,我就写上这个名字啊,我们叫我me cmnd。这个拿过来。然后写完之后在这里边,因为咱们的controller中是不是要去调用service,所以我现在把service给它就注进来D口。Sorry。这样的话,准备工作咱们现在应该就都完成了,跟我们之前创建的好的系统基本上是一致的,各位按照过程给他快速创建出来,这咱就做到了啊,然后做到之后呢,这里边啊,有这么一个细节给各位特别说一下。什么细节呢?因为咱们后面啊,我们要做这个就是数据字典的显示,因为它的显示大家看到这里边是不是有一个层级关系,所以层级关系显示我们在页面中要一个体现,所以咱后面肯定会用到我们这个I的UI做一个显示,就是我们的这个组件里边有一个表格,然后表格中的,比如咱们往后找,找到里边就是在那个。
16:14
层级关系的表格。大家看,比如我们看这种表格。各以看到这表格是不是有层级关系,比如你看啊,这个2016年5月1号下天是不是还有数据啊,咱们要做到的是不是这种效果,比如你有一级,有二级或者有三级,那这个效果怎么做?大家看啊,这里边有IVUI官方提供的视力代码,而在他示力代码中呢,有一个属性是必须要有的,就这个属性大家看。这什么意思啊,叫哈child或者哈children什么意思?它就让我们知道啊,在你的节点下边是不是是否有子节点量,也就是说你反应数据中需要有这个属性,但是这个属性咱表中不存在吧,所以说我们在写11类中,我这里边是特别加了一个属性,咱们来看一下啊,找到咱那十以类就那个D口。
17:10
我们来找一下,就是这个。然后大家看啊,在第一课中呢,除了上面这个,比如这个本身的ID part ID名称等等都是前面有的,然后里面有多加了一个叫哈希丘准,就是为了我们做那个就是分层或者说层级显示的属性,但是这个属性因为表里边没有,最后在上面特别加了一个注解。这注解各位注意啊,上面这些跟表对应的名字,然后这里边特别加了一个叫this等于false。什么意思?也就是说这个如果你不加的话,你要运行时会报错,因为它会找到表中,看表里有没有这个相关字段,但是你加上这个之后,我表中可以没有这个字段,它也能正常运行,因为这个字段。咱们后面在显示中是需要的,所以这是我们特别做一个说明,我再说一遍啊,这个属性加的目的是为了我们能做到这种效果,因为I分UI中它要我们必须有这个属性,所以咱加上,但这个属性表里面不存在,而表里面不存在,如果你直接写它会报错,因为这个实体类跟表要对应,所以咱让他总报错,就设一个值,一个Z等于false,那表中可以不存在,它也可以正常运行,所以咱们现在就做了这么一个处理。
18:29
也就是我课件中写的这个位置里边加上这个东西是否包含子节点,它叫哈希children准这个位这就知道,而这个是为我们树形显示需要的标识是数据库中不存在该字段。所以这样的话,准备工作我们就都完成了,完成之后呢,咱一会儿就来编写我们这个数据字典显示的功能,也就是最终咱给它做成这么一个效果,比如说咱们把这接口我们做一个编写。
我来说两句