学习篇-Activiti-10-详细数据库配置

一、Activiti-数据源配置
  • 缺省配置默认,使用H2内存数据库。

  • 配置JDBC属性,使用mybatis提供的连接池。

    基本配置具体描述
    jdbcUrl数据库连接地址
    jdbcDriver数据驱动类
    jdbcUsername数据库用户名
    jdbcPassword数据库用户密码
    连接池配置描述
    jdbcMaxActiveConnections在数据库连接池内最大的活跃连接数,默认值为 10 。
    jdbcMaxldleConnections连接池最大的空闲连接数。
    jdbcMaxCheckoutTime当连接池内的连接耗尽,外界向连接池请求连接时,创建连接的等待时间, 单位为 ms ,默认值为20000, 即20s 。
    jdbcMaxWaitTime当整个连接池需要重新获取连接时,设置的等待时间,单位为ms, 默认值为20000 ,即20s 。
  • 配置DataSource,可自选第三方实现。

    • Druid

      • 为监控而生的数据库连接池 来自阿里
    • DBCP

      • Apache提供的一个数据源,老牌数据库连接池,稳定可靠,
    • C3P0

      • C3P0是一个开放源代码的JDBC连接池,Hibernate的发行包中默认使用此连接池,性能也不错。
    • HikariCP

      • 来自日本的极速数据源连接池,Spring默选
  • 配置data.baseType

    • 没有指定值时, databaseType 为 null
  • 指定 databaseType 属性,目的是为了确定执行创建( 或删除)表的 SQL 脚本。

    • 如果没有配置 databaseType 属性, Activiti 会使用 Connection 的 getMetaData 方法获取数据库元数据,但是一旦配置了 databaseType 属性,将会以该值为准。
    数据库类型数据库连接简单描述
    h2jdbc:h2:tcp://localhost/activitiActiviti 默认支持 H2数据库, H2是一个开源的嵌入式数据库,使用 Java 语言编写而成。
    mysqljdbc:mysql://localhost:3306/activiti主流数据库之一, 它是一个开源的小型关系型数据库, 由于它体积小、速度快, 免费的。
    oraclejdbc:oracle:thin:@localhost:1521:xe目前世界上最流行的商业数据库 , 价格昂贵, 但拥有性能高效和可靠的数据管理的优势。
    postgresjdbc:postsql://local:5432/activiti开源的数据库。
    db2jdbc:db2://local:50000/activiti由 IBM 公司研发的一款关系型数据库, 其良好的伸缩性和数据库的高效性, 让它成为继 Oracle之后, 又一款应用广泛的商业数据库。
    mssqljdbc:sqlserver://local:1433;databaseName=activiti微软研发的一款数据库产品,目前也支持在 Linux下使用。
  • 数据库策略配置databaseSchemaUpdate,该属性可以设置流程引擎启动和关闭时数据库执行的策略。

    • false: 为默认值, Activiti 在启动时, 会对比数据库表中保存的版本,如果没有表或者版本不匹配,将在启动时抛出异常。

    • true:启动时自动检查并更新数据库表,不存在会自动创建。

    • create-drop:启动时创建数据库结构,结束时删除表结构。如果想要 Activiti 执行“ drop ”操作,必须调用

      ProcessEngine 的 close 方法,否则将不会删除表。

    • drop-create:create-drop 类似,会在流程引擎启动时,先将原来全部的数据表删除,再进行创建。与 create-drop 不同的是,不管是否调用 ProcessEngine 的 close 方法 ,都会执行 create 操作

  • 具体配置

    • 默认配置

      <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
          
              <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
                  <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000;MVCC=TRUE" />
                  <property name="jdbcDriver" value="org.h2.Driver" />
                  <property name="jdbcUsername" value="sa" />
                  <property name="jdbcPassword" value="" />
              </bean>
          </beans>
      
    • 修改连接数据库配置

      • 依赖

        <dependency>
            <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        
      • 配置:activiti_mysql.cfg.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
        
            <!--数据连接修改成mysql-->
          <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
                <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
                <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
                <property name="jdbcUsername" value="root" />
                <property name="jdbcPassword" value="root" />
        <!--        <property name="databaseSchemaUpdate" value="create-drop"/>-->
                <property name="databaseSchemaUpdate" value="true"/>
            </bean>
        </beans>
        
        
    • Druid数据源连接池

      • 依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.22</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        
      • 配置:activiti_druid.cfg.xml

          <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
            <!-- 参照的数据源 -->
            <property name="dataSource" ref="dataSource"></property>
            <!-- 数据库配置 -->
            <property name="databaseSchemaUpdate" value="drop-create" />
          </bean>
        
          <!-- 被参照的数据源 -->
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/activiti"/>
            <property name="username" value="root"/>
            <property name="password" value="root"/>
            <property name="initialSize" value="1"/>
            <property name="maxActive" value="20"/>
            <property name="filters" value="stat,slf4j"/>
          </bean>
        
    • Hikar数据源配置

      • 依赖

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
            <relativePath/>
        </parent>
        或者
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.1.0</version>
        </dependency>
        
      • 配置:activiti_hikar.cfg.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
        
            <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
                <property name="dataSource" ref="dataSourceHikar"/>
                <property name="databaseSchemaUpdate" value="true"/>
            </bean>
        
            <bean id="dataSourceHikar" class="com.zaxxer.hikari.HikariDataSource">
                <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
                <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                <property name="username" value="root" />
                <property name="password" value="root" />
                <property name="maximumPoolSize" value="20"/>
            </bean>
        </beans>
        
    • DBCP数据源配置

      • 依赖

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        
      • 配置:activiti_dbcp.cfg.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
            <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
                <property name="dataSource" ref="dataSource"/>
                <property name="databaseSchemaUpdate" value="true"/>
            </bean>
        
                <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
                    <property name="url" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
                    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                    <property name="initialSize" value="1"/>
                    <property name="maxActive" value="10"/>
                </bean>
        </beans>
        
    • C3P0数据源配置

      • 依赖

        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        
      • 配置:activiti_c3p0.cfg.xml

        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
            <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
                <property name="dataSource" ref="dataSource"/>
                <property name="databaseSchemaUpdate" value="true"/>
            </bean>
        
                <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
                    <property name="driverClass" value="com.mysql.jdbc.Driver" />
                    <property name="user" value="root" />
                    <property name="password" value="root" />
                </bean>
        </beans>
        
二、具体测试代码
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @ClassName ConfigDBTest
 * @Description DB配置
 * @Author eastern
 * @Date 2020/6/27 下午10:55
 * @Version 1.0
 **/
public class ConfigDBTest {

	private static final Logger logger = LoggerFactory.getLogger(ConfigDBTest.class);

	@Test
	public void testConfg1() {
		ProcessEngineConfiguration configuration =
				ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
		logger.info("configuration = {}", configuration);
		ProcessEngine processEngine = configuration.buildProcessEngine();
		logger.info("获取流程引擎 {}", processEngine.getName());
		processEngine.close();
	}

	@Test
	public void testConfg2() {
		ProcessEngineConfiguration configuration =
				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti_druid.cfg.xml");

//		ProcessEngineConfiguration configuration =
//				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti_mysql.cfg.xml");

//		ProcessEngineConfiguration configuration =
//				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti_hikar.cfg.xml");

//		ProcessEngineConfiguration configuration =
//				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti_dbcp.cfg.xml");

//		ProcessEngineConfiguration configuration =
//				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti_c3p0.cfg.xml");
		logger.info("configuration = {}", configuration);
		ProcessEngine processEngine = configuration.buildProcessEngine();
		logger.info("获取流程引擎 {}", processEngine.getName());
		processEngine.close();
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ruoyi-activiti是一个流程引擎平台,是ruoyi框架中的一个模块。它基于Activiti 6.x版本开发,是一个轻量级、易用性强的工作流引擎。它在ruoyi框架中担任着流程管理和流程任务分配的角色,帮助企业或机构简化了日常业务流程,提高了工作效率。 ruoyi-activiti提供了丰富的功能。其中包括:流程设计器、流程监控、用户任务管理、流程部署、流程挂起、历史流程查询等功能。用户可以通过流程设计器设计出符合企业实际业务的流程,也可以通过流程监控及时了解流程运行状态。用户任务管理功能可以帮助管理员快速分配任务,监管任务进度。流程部署功能可以将设计好的流程部署到服务器中。流程挂起则可以帮助管理员停止不需要执行的流程。历史流程查询功能可以让用户查看已完成的流程,方便以后的参考和分析。 总之,ruoyi-activiti是一个高效便捷的流程引擎平台,它的出现对于企业或机构的业务流程管理有着非常大的帮助,未来也会在业界中有着更广泛的应用。 ### 回答2: Ruoyi-activiti是一款基于Ruoyi框架的工作流管理系统。它集成了Activiti工作流引擎,提供了流程设计、流程部署、流程运行监控、流程催办、任务分配、流程驳回、任务委派等功能。 Ruoyi-activiti可以帮助企业更好地管理和优化业务流程,提高流程处理效率和管理水平。它可以通过流程图形化设计工具快速创建复杂流程,并且可以使用流程设计器实时预览和调试流程。在流程运行期间,用户可以根据实际情况对流程进行调整和修改,从而保证流程的灵活性和适应性。另外,Ruoyi-activiti还提供了丰富的统计报表和数据分析功能,方便用户进行数据的分析和管理。 总之,Ruoyi-activiti是一款功能强大、易于使用、性能优秀的工作流管理系统。它的使用可以帮助企业更好地管理流程,提高管理效率和管理质量,让企业更加高效地运转。 ### 回答3: ruoyi-activiti是一款基于Activiti引擎的业务流程管理系统,它是ruoyi-admin的衍生项目。用户可以在ruoyi-activiti中方便地定义和管理工作流程、任务、用户、用户组、角色、表单等元素,同时支持动态设计、部署和启动业务流程。此外,ruoyi-activiti还提供了丰富的报表和数据统计功能,用户可以直观地了解工作流程的运行情况,从而对流程进行优化和改进。此外,ruoyi-activiti还支持消息提醒和审核日志等功能,提高了工作效率和透明度。总之,ruoyi-activiti是一个功能强大、易于使用和可扩展的业务流程管理系统,具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值