Activiti兼容达梦数据库

文章介绍了如何自定义一个SpringProcessEngineConfiguration的子类,重写initDatabaseType方法以获取并处理数据库类型,同时展示了如何在Activiti启动项配置中注入数据源和事务管理器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 自定义类继承SpringProcessEngineConfiguration类,重写initDatabaseType方法。
package com.ydtf.cbda.module.cbdacim.improcess.config;

import org.activiti.engine.ActivitiException;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;

/**
 * @author 自定义activiti的数据库连接
 * @date 2023/9/14 14:31
 */
public class CustomConnectionSpringProcessEngineConfiguration extends SpringProcessEngineConfiguration {
    private static Logger log = LoggerFactory.getLogger(CustomConnectionSpringProcessEngineConfiguration.class);
    @Override
    public void initDatabaseType() {
        Connection connection = null;

        try {
            connection = this.dataSource.getConnection();
            DatabaseMetaData databaseMetaData = connection.getMetaData();
            String databaseProductName = databaseMetaData.getDatabaseProductName();
            log.debug("database product name: '{}'", databaseProductName);
            this.databaseType = databaseTypeMappings.getProperty(databaseProductName);
            if (databaseProductName.contains("DM DBMS")) {
                databaseProductName = "Oracle";
            }
            databaseType = databaseTypeMappings.getProperty(databaseProductName);
            if (this.databaseType == null) {
                throw new ActivitiException("couldn't deduct database type from database product name '" + databaseProductName + "'");
            }

            log.debug("using database type: {}", this.databaseType);
            if ("mssql".equals(this.databaseType)) {
                this.maxNrOfStatementsInBulkInsert = this.DEFAULT_MAX_NR_OF_STATEMENTS_BULK_INSERT_SQL_SERVER;
            }
        } catch (SQLException var12) {
            log.error("Exception while initializing Database connection", var12);
        } finally {
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException var11) {
                log.error("Exception while closing the Database connection", var11);
            }

        }

    }
}
2.  修改Activiti启动项配置
package com.ydtf.cbda.module.cbdacim.improcess.config;

import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.transaction.PlatformTransactionManager;

import javax.sql.DataSource;

/**
 * @author 修改activiti启动配置项
 * @date 2023/9/14 14:38
 */
@Configuration
public class ActivitiConfigguration {
    @Autowired
    private DataSource dataSource;
    @Autowired
    private PlatformTransactionManager transactionManager;

    @Bean
    public SpringProcessEngineConfiguration getProcessEngineConfiguration() {
        SpringProcessEngineConfiguration configuration = new CustomConnectionSpringProcessEngineConfiguration();

        configuration.setDataSource(dataSource);
        configuration.setTransactionManager(transactionManager);
        configuration.setDatabaseSchemaUpdate("true");
        return configuration;
    }

    @Bean
    @Primary
    public TaskExecutor primaryTaskExecutor(){
        return new ThreadPoolTaskExecutor();
    }
}
是的,Activiti 5.2.2 可以兼容达梦数据库Activiti 是一个轻量级的开源工作流引擎,它支持与不同的关系型数据库进行集成。达梦数据库是一种关系型数据库管理系统,它拥有自己的特定规范和语法。 为了使 Activiti 兼容达梦数据库,您需要完成以下步骤: 1. 首先,您需要下载并安装适用于 Activiti达梦 JDBC 驱动程序。您可以在达梦官方网站上找到该驱动程序的下载链接。 2. 安装完驱动程序后,您需要在 Activiti 的配置文件中进行一些必要的更改。在 Activiti 的配置文件中,您需要指定使用达梦数据库和相应的连接信息,如数据库 URL、用户名和密码等。您还需要将达梦数据库的驱动类路径配置在 Activiti 的类路径中。 3. 此外,您还需要确保 Activiti 的版本与所使用的达梦 JDBC 驱动程序兼容。为了解决潜在的兼容性问题,您可以查阅 Activiti达梦数据库的官方文档,以获得更多关于版本兼容性的信息。 完成上述步骤后,您应该能够将 Activiti 集成到达梦数据库中,并使用其提供的工作流功能。请注意,在使用达梦数据库之前,您需要熟悉该数据库的语法和特性,以确保您的操作能够顺利进行。 总而言之,Activiti 5.2.2 可以兼容达梦数据库,但在集成和使用过程中可能需要注意一些细节,如安装适用于 Activiti达梦 JDBC 驱动程序、配置数据库连接信息等。通过正确完成这些步骤,您应该能够顺利地将 Activiti达梦数据库集成,并使用其提供的工作流引擎功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值