JBPM4 经常使用表结构及其说明

首先我想说。这不一篇原创博文。

这里设置成原创。主要是为了分享,由于它对于jbpm的刚開始学习的人,真的值得一看。原作者的博文地址并没有查到,我是在还有一位转载此文的博主那儿获得的。地址在这儿

本文从表结构、操作时表的变化以及jbpm4.4各个包的作用来介绍jbpm的。

第一部分:表结构说明

Jbpm4 共同拥有18张表。例如以下,当中红色的表为常常使用的表

一:资源库与执行时表结构

1.  JBPM4_DEPLOYMENT 流程定义表

2.  JBPM4_DEPLOYPROP 流程定义属性表

3.  JBPM4_EXECUTION  流程实例表

4.  JBPM4_PROPERTY  流程引擎表

5.  JBPM4_TASK 任务表

6.  JBPM4_VARIABLE 上下文表

7.  JBPM4_JOB  定时表

8. JBPM4_LOB  存储表

9.  JBPM4_SWIMLANE泳道表

10.  JBPM4_PARTICIPATION 參与者表

二: 历史数据表

11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表

12.  JBPM4_HIST_DETAIL  流程历史具体表

13.  JBPM4_HIST_PROCINST 流程实例历史表

14.  JBPM4_HIST_TASK  流程任务实例历史表

15.  JBPM4_HIST_VAR 流程变量(上下文)历史表

三:身份认证表结构

16.  JBPM4_ID_GROUP 组表

17.  JBPM4_ID_MEMBERSHIP 用户角色表

18.  JBPM4_ID_USER  用户表

这三张表非经常见。主要的权限控制,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有非常多需求难以满足

第二部分:表结构描写叙述

1.  JBPM4_DEPLOYMENT 流程定义表

2.  JBPM4_DEPLOYPROP 流程定义属性表

3.  JBPM4_EXECUTION  流程实例表

主要是存放JBPM4的运行信息,Execution机制取代了JBPM3的Token机制。

4.  JBPM4_PROPERTY  流程引擎表

5.  JBPM4_TASK 任务表

存放须要人来完毕的Activities。须要人来參与完毕的Activity 被称为Task

6.  JBPM4_VARIABLE 上下文表 存的是进行时的暂时变量

7.  JBPM4_JOB  定时表  存放的是Timer的定义

8. JBPM4_LOB  存储表

9.  JBPM4_SWIMLANE泳道表

Swim Lane是一种Runtime Process Role。通过Swim Lane。多个Task能够一次分配到同一Actor身上。

10.  JBPM4_PARTICIPATION 參与者表

存放 Participation的信息,Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而详细的Participation既能够是单一用户,也能够是用户组。

二: 历史数据表

11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表 存放Activity Instance的历史记录

12.  JBPM4_HIST_DETAIL  流程历史具体表    保存Variable的变更记录

13.  JBPM4_HIST_PROCINST 流程实例历史表 存放Process Instance的历史信息

14.  JBPM4_HIST_TASK  流程任务实例历史表 Task的历史信息。

15.  JBPM4_HIST_VAR 流程变量(上下文)历史表 保存历史的变量

第三部分:操作信息变化

注意:下面操作步骤向表中添加记录的顺序(经过測试)

公布一个流程deploy后

? jbpm4_deployment(流程定义):新增一条记录

? jbpm4_lob(存储表): 新增一条记录

? jbpm4_deployprop(流程定义属性表):新增四条记录

上传一个zip包(包括png和jpdl.xml)后

? JBPM4_DEPLOYMENT多一条记录

? JBPM4_DEPLOYPROP 多三条

? JBPM4_LOB多两条。

開始一个流程startProcessInstanceByKey后

? jbpm4_execution(流程实例表):新增一条记录

? jbpm4_hist_procinst(流程实例历史表):新增一条记录

? jbpm4_variable (上下表):新增一条记录

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

填写申请信息

? jbpm4_variable(上下表) : 新增N条记录,依据表单信息决定

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

审批申请信息

1.允许:

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

2.驳回:

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

审批结束

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

第四部分:JBMP4.4包作用

org.jbpm.pvm.internal.ant

提供使用ant公布流程,辅助启动jboss的任务。

org.jbpm.pvm.internal.builder

用来构造各种模型。包含活动,活动行为。事件,事件处理器,流程定义。变量。任务。等等。

org.jbpm.pvm.internal.cal

提供日历,包含日期。时间段,持续时间,节假日。

org.jbpm.pvm.internal.cfg

JbpmConfiguration和SpringConfiguration实现了org.jbpm.api.Configuration。用来从配置文件构造ProcessEngine

org.jbpm.pvm.internal.xml

主要用于解析xml的,主要解析jbpm.cfg.xml和流程定义文件

org.jbpm.pvm.internal.util

包括经常使用工具

org.jbpm.pvm.internal.wire

用来在ioc里进行依赖绑定。子包包括binding, descriptor, operation和xml,并且默认的绑定方式是使用field。而不是常见的setter绑定方式。

org.jbpm.pvm.internal.type

用来进行类型转换,主要是载入jbpm.cfg.xml对流程引擎进行初始化时。还有就是公布流程的时候进行类型转换。子包包含converter。matcher和variable,类型转换器,类型匹配器和变量。

org.jbpm.pvm.internal.tx

当中负责处理事务,JtaTransaction啦,SpringTransationInterceptor 啦,StandardTransaction啦,这些须要依据实际环境详细选择。jta的实现部分已经单独放到子包jta中了。希望spring中的事务也能这样处理就好了。

org.jbpm.pvm.internal.test

包下放了一个JobTestHelper,显然是能够帮助在測试环境下执行job的,。

org.jbpm.api.client

这部分包括ClientExecution, ClientProcessDefinition, ClientProcessInstance。ClientExecution继承了OpenExecution,声明了end(), signal(), suspend(), resume()之类的方法。

ClientProcessDefintion继承了OpenProcessDefintion,当中的功能主要是 createProcessInstance和startProcessInstance。

org.jbpm.pvm.internal.cmd

包括Command和CommandService,这是命令设计模式的基础。

当中放着全部的命令,全部的流程操作都能够在这里找到。

org.jbpm.pvm.internal.email

以下有两个子包impl和spi。仅仅要注意spi下的AddressResolver, MailProducer和MailSession就能够实现自己定义的实现了。

org.jbpm.pvm.internal.env

包括Context, Environment, EnvironmentFactory, Transaction, WireObject。当中Context, Environment和EnvironmentFactory组成了jBPM4里的IoC系统。Transaction定义了通用事务。 WireObject用来做依赖绑定。以下保存着环境有关的实现类。包括Authentication权限认证。Environment与context 相关的各个类。

org.jbpm.pvm.internal.hibernate

以下的类是专门与hibernate进行交互的类,包括类型转换。命名策略和最基本的DbSessionImpl。全部与数据库的操作都来源于此。

org.jbpm.pvm.internal.history

以下是历史操作所须要的部分。其下还包括events和model包。

org.jbpm.pvm.internal.identity

包主要负责身份认证的操作。包括三个子包cmd, impl和spi。cmd下定义所用到的命令,impl下是实现类。spi下放着IdentitySession。

org.jbpm.pvm.internal.jms

包含JmsMessageSession和JmsMessageUtil,应该是用来处理jms的,JmsMessageSession与 org.jbpm.api.job.Message相关联。

说明job下的Message是依靠jms发送异步消息的。

org.jbpm.pvm.internal.job

提供了对job, message和timer的实现

org.jbpm.pvm.internal.jobexecutor

提供了任务运行器。包含JobExecutorServlet和相应的线程池。以及一系列的命令和处理器。不管是job, message或是timer,终于都会被这里运行。

org.jbpm.pvm.internal.lob

主要用来处理流程公布时的文件内容,须要把jpdl.xml文件和图片,甚至是以后可能把class文件都以附件形式保存到数据库中,以备后用

org.jbpm.pvm.internal.model

这个模型包中包括了非常多非常多类。包括Activity, CompositeElement, Condition, ObservableElement, OpenProcessDefinitionTransition。

简单分类一下。最底层的是ObservableElement,它是能够被事件监听的元素,而且能够继承,CompositeElement继承了 ObservableElement,它里面能够装填多个活动。再加上Event中定义了多个事件,这些就构成了最主要的事件模型。

Activity和 ActivityCoordinates分别定义了活动类和活动位置。以这些为基础。OpenProcessDefinition继承了
ProcessDefinition和CompositeElement。

终于,我们另一个Condition类,它仅仅有一个evaluate方法,接受OpenExecution作为參数返回boolean值。Condition和Activity组合成了Transition。这个转移包括了起点。终点,以及条件推断。最庞大的模型部分,活动,转移,流程定义,流程实例的实现类都放在这里。

在它的op子包中包括的是流程进行中的各项操作。

org.jbpm.pvm.internal.query

History, Job, ProcessDefintion, ProcessInstance这四个query类的实现,还提供了一个Page类,可是当中仅仅有firstResult和maxResults,所以没啥大用

org.jbpm.pvm.internal.repository

负责的是流程的公布。主要有Deployment和Repository相应的service, session和cache。这里使用的缓存,所以每次使用流程定义的时候能够利用缓存提高效率。

org.jbpm.pvm.internal.script

包括对脚本的支持,默认支持了JuelScriptEngine。

org.jbpm.pvm.internal.session

支持各种会话,DbSession, MessageSession, RepositorySession和TimerSession。

org.jbpm.pvm.internal.spring

仅仅有一个CommandTransactionCallback用来实现从spring中获得事务,并用其运行jbpm中定义的各种命令

org.jbpm.pvm.internal.stream

用于从各种途径读取资源。不管是jbpm配置文件和流程资源都要通过这些来转换成流的形式,以供给jbpm处理。

org.jbpm.pvm.internal.svc

当中svc也许是service的缩写。这个包中除了包含org.jbpm.api包下定义的全部service接口的实现,还包含commandService的实现和认证拦截器。

org.jbpm.pvm.internal.task

代表了全部与任务,任务參与者相关的信息,包含Assignable, AssignmentHandler, OpenTask, Participation, Swimlane, Task, TaskDefinition。简单划分后,主要有任务,任务定义任务处理。剩下的都是与任务分配有关了。TaskDefinition从字面上来看是指任务定义,里边仅仅有一个getName()。

Task中保存了任务相关的一些内容,OpenTask主要用来处理历史事件。參与者部分基本分成三个部分,以Assignable和AssignmentHandler组成的自己定义分配部分。Participation參与者和swimlane泳道。临时没有发现三者之间与任务的联系

JBPM4 经常使用表结构

第一部分:表结构说明

Jbpm4 共同拥有18张表。例如以下,当中红色的表为常常使用的表

一:资源库与执行时表结构

1.  JBPM4_DEPLOYMENT 流程定义表

2.  JBPM4_DEPLOYPROP 流程定义属性表

3.  JBPM4_EXECUTION  流程实例表

4.  JBPM4_PROPERTY  流程引擎表

5.  JBPM4_TASK 任务表

6.  JBPM4_VARIABLE 上下文表

7.  JBPM4_JOB  定时表

8. JBPM4_LOB  存储表

9.  JBPM4_SWIMLANE泳道表

10.  JBPM4_PARTICIPATION 參与者表

二: 历史数据表

11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表

12.  JBPM4_HIST_DETAIL  流程历史具体表

13.  JBPM4_HIST_PROCINST 流程实例历史表

14.  JBPM4_HIST_TASK  流程任务实例历史表

15.  JBPM4_HIST_VAR 流程变量(上下文)历史表

三:身份认证表结构

16.  JBPM4_ID_GROUP 组表

17.  JBPM4_ID_MEMBERSHIP 用户角色表

18.  JBPM4_ID_USER  用户表

这三张表非经常见,主要的权限控制,关于用户认证方面建议还是自己开发一套。组件自带的功能太简单,使用中有非常多需求难以满足

第二部分:表结构描写叙述

1.  JBPM4_DEPLOYMENT 流程定义表

2.  JBPM4_DEPLOYPROP 流程定义属性表

3.  JBPM4_EXECUTION  流程实例表

主要是存放JBPM4的运行信息,Execution机制取代了JBPM3的Token机制。

4.  JBPM4_PROPERTY  流程引擎表

5.  JBPM4_TASK 任务表

存放须要人来完毕的Activities,须要人来參与完毕的Activity 被称为Task

6.  JBPM4_VARIABLE 上下文表 存的是进行时的暂时变量

7.  JBPM4_JOB  定时表  存放的是Timer的定义

8. JBPM4_LOB  存储表

9.  JBPM4_SWIMLANE泳道表

Swim Lane是一种Runtime Process Role。通过Swim Lane。多个Task能够一次分配到同一Actor身上。

10.  JBPM4_PARTICIPATION 參与者表

存放 Participation的信息。Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而详细的Participation既能够是单一用户。也能够是用户组。

二: 历史数据表

11.  JBPM4_HIST_ACTINST 流程活动(节点)实例表 存放Activity Instance的历史记录

12.  JBPM4_HIST_DETAIL  流程历史具体表    保存Variable的变更记录

13.  JBPM4_HIST_PROCINST 流程实例历史表 存放Process Instance的历史信息

14.  JBPM4_HIST_TASK  流程任务实例历史表 Task的历史信息。

15.  JBPM4_HIST_VAR 流程变量(上下文)历史表 保存历史的变量

第三部分:操作信息变化

注意:下面操作步骤向表中添加记录的顺序(经过測试)

公布一个流程deploy后

? jbpm4_deployment(流程定义):新增一条记录

? jbpm4_lob(存储表): 新增一条记录

? jbpm4_deployprop(流程定义属性表):新增四条记录

上传一个zip包(包括png和jpdl.xml)后

? JBPM4_DEPLOYMENT多一条记录

? JBPM4_DEPLOYPROP 多三条

? JBPM4_LOB多两条。

開始一个流程startProcessInstanceByKey后

? jbpm4_execution(流程实例表):新增一条记录

? jbpm4_hist_procinst(流程实例历史表):新增一条记录

? jbpm4_variable (上下表):新增一条记录

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

填写申请信息

? jbpm4_variable(上下表) : 新增N条记录,依据表单信息决定

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

审批申请信息

1.允许:

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

2.驳回:

? jbpm4_task (任务表):新增一条记录

? jbpm4_hist_task(任务历史表):新增一条记录

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

审批结束

? jbpm4_hist_actinst (活动节点实例表):新增一条记录

jbpm4.4最核心的包

1.antlr.jar

2.commons-collections.jar

3.commons-logging.jar

4.dom4j.jar

5.hibernate-core.jar

6.javassist.jar

7.jbpm.jar

8.jta.jar

9.mail.jar

10.slf4j-api.jar

11.slf4j-jdk14.jar

12.slf4j-log4j12.jar

配置文件

jbpm.execution.hbm.xml, jbpm.history.hbm.xml, jbpm.identity.hbm.xml, jbpm.repository.hbm.xml, jbpm.task.hbm.xml五个hibernate映射文件

jbpm.default.cfg.xml     ---->   流程引擎的默认配置文件

jbpm.identity.cfg.xml    ---->   身份验证配置文件

jbpm.jbossremote.cfg.xml ---->   远程调用jboss实现命令模式

jbpm.jobexecutor.cfg.xml ---->   任务运行器的配置

jbpm.task.lifecycle.xml  ---->   任务生命周期,包含启动。暂停,继续,完毕。取消之类

jbpm.tx.hibernate.cfg.xml---->   默认的hibernate事务配置

jbpm.tx.jta.cfg.xml      ---->   jta的事务配置

jbpm.variable.types.xml  ---->   配置变量类型映射

jbpm.wire.bindings.xml   ---->   依赖绑定映射

jbpm4.4包作用

org.jbpm.pvm.internal.ant

提供使用ant公布流程,辅助启动jboss的任务。

org.jbpm.pvm.internal.builder

用来构造各种模型,包含活动,活动行为,事件。事件处理器,流程定义,变量。任务,等等。

org.jbpm.pvm.internal.cal

提供日历。包含日期。时间段,持续时间,节假日。

org.jbpm.pvm.internal.cfg

JbpmConfiguration和SpringConfiguration实现了org.jbpm.api.Configuration,用来从配置文件构造ProcessEngine

org.jbpm.pvm.internal.xml

主要用于解析xml的,主要解析jbpm.cfg.xml和流程定义文件

org.jbpm.pvm.internal.util

包括经常使用工具

org.jbpm.pvm.internal.wire

用来在ioc里进行依赖绑定。子包包括binding, descriptor, operation和xml,并且默认的绑定方式是使用field。而不是常见的setter绑定方式。

org.jbpm.pvm.internal.type

用来进行类型转换,主要是载入jbpm.cfg.xml对流程引擎进行初始化时。还有就是公布流程的时候进行类型转换。子包包含converter,matcher和variable,类型转换器,类型匹配器和变量。

org.jbpm.pvm.internal.tx

当中负责处理事务,JtaTransaction啦,SpringTransationInterceptor 啦。StandardTransaction啦,这些须要依据实际环境详细选择。

jta的实现部分已经单独放到子包jta中了。

希望spring中的事务也能这样处理就好了。

org.jbpm.pvm.internal.test

包下放了一个JobTestHelper,显然是能够帮助在測试环境下执行job的,。

org.jbpm.api.client

这部分包括ClientExecution, ClientProcessDefinition, ClientProcessInstance。ClientExecution继承了OpenExecution,声明了end(), signal(), suspend(), resume()之类的方法。ClientProcessDefintion继承了OpenProcessDefintion,当中的功能主要是 createProcessInstance和startProcessInstance。

org.jbpm.pvm.internal.cmd

包括Command和CommandService。这是命令设计模式的基础。当中放着全部的命令,全部的流程操作都能够在这里找到。

org.jbpm.pvm.internal.email

以下有两个子包impl和spi,仅仅要注意spi下的AddressResolver, MailProducer和MailSession就能够实现自己定义的实现了。

org.jbpm.pvm.internal.env

包括Context, Environment, EnvironmentFactory, Transaction, WireObject。

当中Context, Environment和EnvironmentFactory组成了jBPM4里的IoC系统。

Transaction定义了通用事务。

WireObject用来做依赖绑定。以下保存着环境有关的实现类。

包括Authentication权限认证,Environment与context 相关的各个类。

org.jbpm.pvm.internal.hibernate

以下的类是专门与hibernate进行交互的类,包括类型转换,命名策略和最基本的DbSessionImpl,全部与数据库的操作都来源于此。

org.jbpm.pvm.internal.history

以下是历史操作所须要的部分。其下还包括events和model包。

org.jbpm.pvm.internal.identity

包主要负责身份认证的操作。包括三个子包cmd, impl和spi,cmd下定义所用到的命令,impl下是实现类,spi下放着IdentitySession。

org.jbpm.pvm.internal.jms

包含JmsMessageSession和JmsMessageUtil,应该是用来处理jms的。JmsMessageSession与 org.jbpm.api.job.Message相关联。

说明job下的Message是依靠jms发送异步消息的。

org.jbpm.pvm.internal.job

提供了对job, message和timer的实现

org.jbpm.pvm.internal.jobexecutor

提供了任务运行器。包含JobExecutorServlet和相应的线程池。以及一系列的命令和处理器。不管是job, message或是timer,终于都会被这里运行。

org.jbpm.pvm.internal.lob

主要用来处理流程公布时的文件内容,须要把jpdl.xml文件和图片,甚至是以后可能把class文件都以附件形式保存到数据库中。以备后用

org.jbpm.pvm.internal.model

这个模型包中包括了非常多非常多类,包括Activity, CompositeElement, Condition, ObservableElement, OpenProcessDefinitionTransition。

简单分类一下。

最底层的是ObservableElement,它是能够被事件监听的元素,而且能够继承。CompositeElement继承了 ObservableElement,它里面能够装填多个活动。再加上Event中定义了多个事件,这些就构成了最主要的事件模型。Activity和 ActivityCoordinates分别定义了活动类和活动位置。以这些为基础。OpenProcessDefinition继承了
ProcessDefinition和CompositeElement。终于,我们另一个Condition类。它仅仅有一个evaluate方法。接受OpenExecution作为參数返回boolean值,Condition和Activity组合成了Transition,这个转移包括了起点,终点,以及条件推断。最庞大的模型部分,活动,转移,流程定义。流程实例的实现类都放在这里。在它的op子包中包括的是流程进行中的各项操作。

org.jbpm.pvm.internal.query

History, Job, ProcessDefintion, ProcessInstance这四个query类的实现,还提供了一个Page类,可是当中仅仅有firstResult和maxResults。所以没啥大用

org.jbpm.pvm.internal.repository

负责的是流程的公布,主要有Deployment和Repository相应的service, session和cache,这里使用的缓存,所以每次使用流程定义的时候能够利用缓存提高效率。

org.jbpm.pvm.internal.script

包括对脚本的支持,默认支持了JuelScriptEngine。

org.jbpm.pvm.internal.session

支持各种会话,DbSession, MessageSession, RepositorySession和TimerSession。

org.jbpm.pvm.internal.spring

仅仅有一个CommandTransactionCallback用来实现从spring中获得事务,并用其运行jbpm中定义的各种命令

org.jbpm.pvm.internal.stream

用于从各种途径读取资源。不管是jbpm配置文件和流程资源都要通过这些来转换成流的形式,以供给jbpm处理。

org.jbpm.pvm.internal.svc

当中svc也许是service的缩写。这个包中除了包含org.jbpm.api包下定义的全部service接口的实现,还包含commandService的实现和认证拦截器。

org.jbpm.pvm.internal.task

代表了全部与任务,任务參与者相关的信息。包含Assignable, AssignmentHandler, OpenTask, Participation, Swimlane, Task, TaskDefinition。简单划分后,主要有任务,任务定义任务处理。剩下的都是与任务分配有关了。TaskDefinition从字面上来看是指任务定义。里边仅仅有一个getName()。Task中保存了任务相关的一些内容。OpenTask主要用来处理历史事件。參与者部分基本分成三个部分。以Assignable和AssignmentHandler组成的自己定义分配部分,Participation參与者和swimlane泳道。临时没有发现三者之间与任务的联系

时间: 2024-12-20 14:33:15

JBPM4 经常使用表结构及其说明的相关文章

JBPM4 常用表结构及其说明

本文从表结构.操作时表的变化以及jbpm4.4各个包的作用来介绍jbpm的. 第一部分:表结构说明 Jbpm4 共有18张表,如下,其中红色的表为经常使用的表 一:资源库与运行时表结构 1.  JBPM4_DEPLOYMENT 流程定义表 2.  JBPM4_DEPLOYPROP 流程定义属性表 3.  JBPM4_EXECUTION  流程实例表 4.  JBPM4_PROPERTY  流程引擎表 5.  JBPM4_TASK 任务表 6.  JBPM4_VARIABLE 上下文表 7.  J

Redis实现高并发分布式序列号

使用Redis实现高并发分布式序列号生成服务 序列号的构成 为建立良好的数据治理方案,作数据掌握.分析.统计.商业智能等用途,业务数据的编码制定通常都会遵循一定的规则,一般来讲,都会有自己的编码规则和自增序列构成.比如我们常见的身份证号.银行卡号.社保电脑号等等. 以某公司产品标识码(代表该产品的唯一编码)的构成为例: 规则定义:商品款号(8位)+颜色号(3位)+号型码(3位) (共14位) 其标识码为:62X19001 001 46A 业务含义为: 2009年男装秋冬季仿毛套西黑色170A版

Sql Server存储过程和函数浅谈

今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql server常用控制语句 1.begin..end语句:该语句用来定义一串由顺序执行的SQL语句构成的块. begin statement block end 2.if....else语句:该语句用来定义有条件执行的某些语句. if boolen_expression statement [els

Oracle数据库之FORALL与BULK COLLECT语句

   我们再来看一下PL/SQL块的执行过程:当PL/SQL运行时引擎处理一块代码时,它使用PL/SQL引擎来执行过程化的代码,而将SQL语句发送给SQL引擎来执行:SQL引擎执行完毕后,将结果再返回给PL/SQL引擎.这种在PL/SQL引擎和SQL引擎之间的交互,称为上下文交换(context switch).每发生一次交换,就会带来一定的额外开销. FORALL,用于增强PL/SQL引擎到SQL引擎的交换. BULK COLLECT,用于增强SQL引擎到PL/SQL引擎的交换.(前面我们已经

ABAP Enhancement:第二部分

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291296.html 第三代:基于类的增强(BADI)... 25 BADI新方式实现... 42 1-构建BADI. 42 2-实现BADI. 44 3-使用BADI过滤器... 49 4-多个实现时究竟调谁... 51 查找系统中的BA

[Android分享] 社交软件开发解决方案

一个简单的社交软件解决方案应该解决的问题: 通信/共享/空间(朋友圈)/用户/好友/动态/聊天记录. 社交主要是交流.朋友圈(空间).通信又分为文本.表情.语音.视频.朋友圈主要包含自己和好友动态,有些还包含系统推荐的信息. 这是我使用Bmob提供的解决方案案例: 通信:建立Bmob推送服务基础上,有消息需要将通知或者信息推送到参与者端,文本可以直接推送,对于视频,语音推送的是存储连接地址,当参与者收到推送消息,根据地址下载该消息.对于表情来说有两种方法,一种是在本地存储表情包,另一种是和视频,

关系型数据库和非关系型数据的比较

一.关系型数据库 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1.易于维护:都是使用表结构,格式一致:2.使用方便:SQL语言通用,可用于复杂查询:3.复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询.缺点:1.读写性能比较差,尤其是海量数据的高效率读写:2.固定的表结构,灵活度稍欠:3.高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈. 二.非关系型数据库 非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合

MySql学习01----数据库简介

一. 什么是数据库 简单的说,数据库(英文Dtabase)就是一个存放数据的仓库,这个仓库是按照一定的数据结果(数据结构是指数据的组织形式或数据之间的联系)来组织.存储的.我们可以通过数据库提供的多种方法来管理数据库里的数据更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同. 二. 数据库的种类 早期比较流行的数据库模型有三种,分别为层次式数据库.网络式数据库和关系型数据库.而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库. 三.

Laravel 数据迁移文件常用方法速查表

一.存储引擎.字符编码相关操作 命令 描述 $table->engine = 'InnoDB'; 指定表的存储引擎(MySQL) $table->charset = 'utf8'; 指定数据表的默认字符集(MySQL) $table->collation = 'utf8_unicode_ci'; 指定数据表的字符序(MySQL) $table->temporary(); 创建临时表(除SQL Server) 二.可用的数据列类型 命令 描述 $table->bigIncrem