*每组基础数据可以根据实际的业务需求在程序中创建对应的枚举类(value和name属性). 2.系统配置表(sys_config) 作用:用于存放系统的配置项,某些业务逻辑需要根据配置项的值来做出相应的处理...*记录的新增、删除都是通过手动进行操作. *在系统配置页面中查询配置项并修改配置项的值. *在某些业务逻辑中需根据模块ID和配置代码查询配置项,根据不同的配置值做出相应的处理. ...*在页面中通过多级联动选择地域,调用根据父编码查询记录的API(首次查询父编码为0的记录表示顶层节点) 4.RBAC 用户表(sys_user) 角色表(sys_role) 菜单表(sys_menu...*删除记录时前端需要传递要删除的机构ID,后台将删除本机构及其所有子机构,只要所有的父ID中包含要删除的机构ID则也应被删除. 6.系统操作日志(sys_log) 作用:用于记录用户在系统中的操作行为....、getMethod()方法获取HTTP请求方法. 3.通过判断afterCompletion方法的Exception参数是否为空来确定此处请求是否成功,若Exception参数不为空则获取异常中的信息保存进库中
编辑手记:在12.1及以前的版本中,当祖父,父,子表之间有明显的主键和引用完整性约束,只有加入的主键是单个列键时,才能进行连接消除; 但在12.2多列主键也允许发生连接消除,优化器从内联视图中删除父对象...当考虑连接表的顺序时,优化器有几个内置的算法,用于选择表的初始连接顺序,并通过对初始顺序对调整获得最终的连接顺序。...我当时使用的SQL语句如下: ? 正如你接下来将看到的三个表,祖父,父,子有明显的主键和引用完整性约束。 这意味着祖父项具有单列主键,父项具有双列主键,子项具有三列主键。...在早期版本的Oracle连接中,只有当加入的主键是单个列键时,才能进行消除,因此12.1和更早版本将只能从此三表连接中消除祖父项; 但在12.2多列主键也允许发生连接消除,所以我们可能希望我们从这个查询中获得的计划将消除祖父母表和父表...注意: 如果想知道从Oracle语法切换到ANSI语法是否会有所不同,说明如下:使用ANSI语法,如果SQL按照 grandparent - > parent - > child的顺序列出表,祖父项和父项都会被删除
create table选项 指定列选项:default 当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 ;如果没有,则为null。...中,可以通过该表查询约束信息 常见的约束类型 not null非空,指定某列不为空(注意区分空和空格的关系) unique:唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,...(deptid) references dept(deptid) 外键的删除规则 当删除父表中的行时,如果子表中有依赖被删除的父行的子行存在,那么就不允许删除,并抛出异常(默认对外键使用on delete...cascade:级联删除,当删除父表中的行时,如果子表中有依赖于被删除父行的子行存在,那么联通子行一起删除,相当于rm -f on delete set null:当删除父表中的行时,如果子表中有依赖于被删除的父行的子行存在...SET可以选择多个值 AUTO_INCREMENT 自增 缺点:当删除上一条时会在删除的上一条的基础上加1,不会覆盖原来删除的编号 列的数值自动增长,列的类型只能是整数类型 通常给主键添加自增长约束
由于两者的语法有部分不一样,所以需要把Oracle中能用但MySQL中不能用的函数/类型等改为MySQL中能用的,以下是总结出的部分语法区别: 一、数据类型 1....Date 类型 MySQL 中的日期时间类型有Date、Time、Datetime等类型,MySQL中Date类型仅表示日期(年-月-日),Time类型仅表示时间(时:分:秒),而Datetime...类型表示日期时间(年-月-日 时:分:秒),Oracle中的Date类型和MySQL中的Datetime类型一致。...条件函数(nvl()、nvl2()、decode()) nvl(tab.columnName, 0):如果tab.columnName值为空,则返回值取0,否则取tab.columnName...; -- 3、未修改/新增的数据项,如果必填,则必须有默认值) -- 1、由于是先删后增,所以需要满足以下2个条件之一: -- 1.要么必填项有默认值; -- 2.要么插入/更新时为没有默认值的必填项赋值
c).其中一个为auto,另一个为具体数值时: c-1). ie8及现代浏览器 的表现是,为auto的父元素z-index值不起作用,其 子元素的z-index值和不为auto的另一个父元素比较 层级,...回归案例,也就是说当a的父元素z-index为auto时,根本没有生成层叠上下文,父元素根本没有出来应战,只能子元素硬着头皮和别人的爹pk。...三条原则: 在所有浏览器中,只要z-index为数值,就会创建层叠上下文。 当z-index为auto时,不会触发新建层叠上下文。z-index:auto;相当于z-index:0;的效果。...其他 1. z-index值不为auto的flex项(父元素display:flex|inline-flex,且子元素的z-index值不为auto) 2. 元素的opacity值不是1 3....每个层叠上下文是自成体系的:当元素的内容被层叠后,整个元素被认为是在父层的层叠顺序中。(就像两个父元素大官比较层级大小,跟子元素的层级大小没有关系。
,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于根节点的值 它的左右子树也分别为二叉搜索树 注意通常二叉搜索树不会有相同的键值...它们的出现大大提高了二叉搜索树在实际应用中的性能和稳定性。 我们常常会选择使用 AVL 树或红黑树来解决搜索问题。 今天,我们主要来学习二叉搜索树,为后序的学习打好基础!!!...//不为空 就寻找合适位置进行插入 else { Node* cur = _root; while (cur !...但是要考虑一个特殊情况 ❗ ❗ ❗如果被删除的节点没有父节点(也就是删除根节点时),需要特殊处理:直接把根节点更新就可以 bool Erase(K key) { Node* cur = _root...else { //这个情况需要找到该位置的替代值 //选择左子树的最大值 或 右子树的最小值 //这里我们选择右子树的最小值 Node* rightMin = cur->_right; Node
rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。...一.命令格式 rmdir [参数] 目录 二.命令功能: 该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。...三.命令参数: 参数 描述 -p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。...'test1/dir1/file1' 失败: 不是目录 hc@hc-virtual-machine:~$ rmdir test1/dir3 rmdir: 删除 'test1/dir3' 失败: 目录非空...目录,如果删除后,dir21目录的父级目录为空目录,则删除其父级目录dir2,如果dir2的目录被删除后,test1目录为空目录,则接着删除,直到遇到父级目录不为空目录,则停止删除 rmdir -p 当该目录的子目录被删除后使其也成为空目录的话
reuseStrategy的值 在 HttpClientBuilder 进行构建 httpclient 连接池的默认值为 DefaultClientConnectionReuseStrategy ,核心代码如下...另外该方法还调用了父类的keepAlive() 方法,其父类是 DefaultConnectionReuseStrategy 类型,对父类 keep alive有下面分析。...对于父类的逻辑中,如果 http 响应的响应头中包含项 Connection:Close ,那么不重用。...对于父类的逻辑中,如果 http 响应的响应头中包含项 Transfer-Encoding ,但是如果它的值不为 chunked ,那么不重用。...对于父类的逻辑中,如果响应状态码为204表示没有数据,但是响应头里Content-Length的值大于0或者不为数字,或者 http 响应头里有 Transfer-Encoding项 ,那么不重用。
拓扑排序 环形队列的插入、删除原理 环形队列可以用数组(大小等于n)实现,包含front(起始位置)和rear(结束位置),通常只能存储n-1项,以区分空(front==(rear+1)%n)和满(front...插入 先判断队列是否已满,如果还没满,rear=(rear+1)%n 删除 先判断队列是否为空,如果不为空,front=(front+1)%n BST(二叉查找树) BST上节点的左孩子的值总是小于该结点...需要注意的是,一定要递归地找到“最左的”左子树再访问。中序遍历是从叶子结点或叶子结点的父节点(当叶子结点的父节点没有左孩子时)开始的。...构建步骤 将字符与出现频率对应起来,并由小到大排序,如:A 10 B 20 C 30 D 40 选择最小的两个字符结点,它们的父结点的值等于这两个字符的频率(权重)之和。...有两个孩子结点时,父亲结点的值大于等于第一个孩子节点,小于第二个孩子结点,有三个孩子节点时,父亲结点的两个值也应该夹在第一、二个结点和第二、三个结点之间。
8为字节为基础的二进制流,各个数据项按照严格的顺序排列在class文件中,没有任何分隔符,当遇到需要占用8位字节以上的数据项时,则会按照高位在前(或低位在前)方式分割为若干个8位字节存储。...无符号数:u1,u2,u3,u4代表响应字节大小的无符号数,用来描述数字,索引引用,数量值(数字的值)或者按照UTF-8编码的字符串值。 表:由无符号数和其它标组成的符合数据类型。...常量池(大小不定):class文件的资源仓库,占用空间比较大,和其它数据项交互多,第一个出现表类型数据的数据项。...类索引、父类索引与接口索引集合: 类索引(this_class):u2数据类型,确定类的全限定名, 父类索引(super_class):u2数据类型,确定父类全限定名,只有一个(单继承),除了...Object,其它都有父类,父类索引不为0, 接口索引(interfaces):u2类型数据集合,实现的接口,按照implements后的顺序排列在接口索引集合中,第一项u2为接口计数器(interfaces_count
一、僵尸进程 当子进程退出的时候,内核会向父进程发送SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,...二、如何避免僵尸进程 当一个子进程结束运行时,它与其父进程之间的关联还会保持到父进程也正常地结束运行或者父进程调用了wait/waitpid才告终止。...进程表中代表子进程的数据项是不会立刻释放的,虽然不再活跃了,可子进程还停留在系统里,因为它的退出码还需要保存起来以备父进程中后续的wait/waitpid调用使用。它将称为一个“僵进程”。...返回的是子进程的PID,它通常是结束的子进程 状态信息允许父进程判定子进程的退出状态,即从子进程的main函数返回的值或子进程中exit语句的退出码。...在一个子进程终止前, wait 使其调用者阻塞,而waitpid 有一选择项,可使调用者不阻塞。 waitpid并不只能等待第一个终止的子进程—它有若干个选择项,可以控制它所等待的特定进程。
支持(an + b)的格式 目标伪类选择器: :target:当url指向该元素时生效。...important > 行内样式 > ID选择器 > 类与伪类选择器 > 标签选择器 > 通用选择器 权重相同时,后面的样式会覆盖前面的样式 继承自父元素的权重最低 ---- 3.颜色 预定义的颜色值...当使用一个半径时确定一个圆形,当使用两个半径时确定一个椭圆。这个(椭)圆与边框的交集形成圆角效果。...父元素与后代元素:父元素没有上边框和padding时,后代元素的margin-top会溢出,溢出后父元素的margin-top会与后代元素取最大值。...可以在父元素的css属性中增加 overflow: hidden这一属性后 父元素不再随子元素而改变 或者在父元素之前加上一个空元素: .div-outer::before { content: "
树结构中很重要的一点就是节点之间关键字值大小的关系。在二叉树中,所有关键字值比某个节点值小的节点都在这个节点左子节点为根的子树上;所有关键字值比某个节点值大的节点都在这个节点右子节点为根的子树上。...简化关系如下图,由于2-3-4树中一般不允许出现重复关键值,所以不用考虑比较关键值相同的情况。 ? 2、搜索2-3-4树 查找特定关键字值的数据项和在二叉树中的搜索类似。...从根节点开始搜索,除非查找的关键字值就是根,否则选择关键字值所在的合适范围,转向那个方向,直到找到为止。 比如对于下面这幅图,我们需要查找关键字值为 64 的数据项。 ? ...①、当插入没有满数据项的节点时是很简单的,找到合适的位置,只需要把新数据项插入就可以了,插入可能会涉及到在一个节点中移动一个或其他两个数据项,这样在新的数据项插入后关键字值仍保持正确的顺序。...2、根的分裂 如果一开始查找插入节点时就碰到满的根节点,那么插入过程更复杂: ①、创建新的根节点,它是要分裂节点的父节点。
,直接返回NULL 2)树非空时,如果要删除的是叶子节点时,直接删除,并把父节点的相应指针置为NULL。...} } return BST; } ---- 删除最小值 算法如下: 1)如果树为空,则返回NULL 2)当树不为空时,直至搜索左子树直至当前结点左子树为空,同时保存当前结点的父节点...若当前结点的右子树不为空时,把当前结点的右子树放到父节点的左子树上,释放当前结点。返回跟结点。...} return BST; } ---- 删除最大值 算法如下: 1)如果树为空,则返回NULL 2)当树不为空时,直至搜索右子树直至当前结点右子树为空,同时保存当前结点的父节点...若当前结点的左子树不为空时,把当前结点的左子树放到父节点的右子树上,释放当前结点。返回跟结点。
根据根节点、左节点和右节点之间的相对顺序,可以进一步将 DFS 策略区分为: 先序遍历 中序遍历 后序遍历 ?...BFS null 节点也入列,说它是真实节点也行,它有对应的"X",只是没有子节点入列 考察出列节点 如果不为 null,则将它的值推入 res 数组,并将它的左右子节点入列 如果是 null 节点,则将...'X' 推入 res 数组 出列、入列,直到队列为空,所有节点遍历完,res 数组也构建完,转成字符 反序列化——也是 BFS,父节点出列,子节点入列 除了第一个 ROOT 值,其他节点值都成对出现,...分别对应左右子节点 我们从第二项开始遍历,每次考察两个节点值 因为先生成的节点,会成为之后生成的节点的父亲,用一个 queue 暂存一下 queue 初始放入根节点。...父节点出列即考察它,新创建的子节点入列 同时考察父节点,和两个子节点值 出列的父节点,它对应到指针指向的左子节点值,和指针右边的右子节点值 如果子节点值不为 'X' ,则为它创建节点,成为父节点的子节点
然后将 element 插入到空节点中。 然后,查找 parent 中所有符合选择器 selector 的元素集合,再找出当前元素 element 在集合中的索引。...参数 selector 可以为 Function 或者选择器,当为 Function 时,调用的其实调用了两次 not 方法,负负得正。关于 not 方法,下面马上会看到。...当为一般的选择器时,调用的是filter 方法,filter 的回调函数调用了 matches ,将符合 selector 的元素返回,并包装成 zepto 对象返回。...当 selector 不为 Function 时, 定义了一个变量 excludes ,这个变量来用接收需要排除的元素集合。...nodes 的初始值为当前集合,while 循环的条件为集合不为空。
在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入数据项的方法,优先级队列可以用有序数组来实现...这样尽管删除的时间变慢了,但是插入的时间快了很多,当速度非常重要,而且有很多插入操作时,可以选择用堆来实现优先级队列。...对于查找,由于堆的特性,在查找的过程中,没有足够的信息来决定选择通过节点的两个子节点中的哪一个来选择走向下一层,所以也很难在堆中查找到某个关键字。 ...根节点在数组中的索引总是0,即maxNode = heapArray[0]; 移除根节点之后,那树就空了一个根节点,也就是数组有了一个空的数据单元,这个空单元我们必须填上。 ...注意:"/" 这个符号,应用于整数的算式时,它执行整除,且得到是是向下取整的值。
关于“QueryDatabaseTable”处理器的“Properties”配置的说明如下: 配置项 默认值 允许值 描述 Database Connection Pooling Service...Name (表名) 查询数据库的表名,当使用“Custom Query”时,此为查询结果的别名,并作为FlowFile中的属性。...查询数据库的表名,当使用“Custom Query”时,此为查询结果的别名,并作为FlowFile中的属性。...关于“ConvertAvroToJSON”处理器的“Properties”配置的说明如下: 配置项 默认值 允许值 描述 JSON container options (Json选择) array...Null Value Representation(Null值表示) empty string empty string the string 'null' 指定结果为空值时的表示形式。
6、伪类及伪元素选择器 常用的伪类选择器有hover,表示鼠标悬浮在元素上时的状态,伪元素选择器有before和after,它们可以通过样式在元素中插入内容。...css元素溢出 当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置。 overflow的设置项: 1、visible 默认值。...,有的设置项不写也是可以的,它会使用默认值。...、E:last-of-type:匹配父元素的最后一个类型为E的子元素 10、E:only-of-type:匹配父元素中唯一子元素是E的子元素 11、E:empty 选择一个空的元素 12、E:enabled...none 不改变默认行为 forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义) backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值
PS:本博客收录自己工作中遇到学到的一些Oracle技能,有时间就更新整理一下 (1)Oracle正则匹配使用 PS:这条SQL可以通过正则匹对查询一下,表A的字段a是否有非数字的数据,有时候数据表的一些字段是...(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。...NVL2函数的格式如下:NVL2(expr1,expr2, expr3) 含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。...select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。...,sql意思就是t.project_Name为空的情况#{projectName}=#{projectName},也即1=1,就是不做任何操作;不为空的情况,t.project_Name=#{projectName
领取专属 10元无门槛券
手把手带您无忧上云