activiti的建表方式和创建引擎对象


    /*
     * 这里有三种方式创建表:
     *   第一种:
     *      1.创建一个引擎配置对象。通过对象去读取 链接数据库的四要素。
     *      2.设置建表的策略  通常使用false
     *      3.通过引擎配置对象类的静态方法创建引擎对象。
     *      4.系统自动创建表
     *  第二种:
     *      1.第一种方式需要把数据库四要素都写在程序中,所以第二种方法就是将他配置到一个配置文件中。
     *        以为 acitviti 就是以spring 和mybatis等框架开发出的一个成型的完整的系统。所以配置
     *       文件和spring的applictionConfiguration.xml一样。
     *      2.有了配置文件 我们在构建引擎配置对象的同时就读取这个配置文件即可。
     *  第三种:
     *      1.不需要创建一个引擎配置对象  直接通过ProcessEngines类直接得到默认的引擎对象。
     *      ps:  通过查看源码,在引擎初始化的时候会默认去读取activiti.cfg.xml文件。
     */
    @Test
    public void TestActivitiEngine() {
        //创建一个引擎  配置  对象。
        ProcessEngineConfiguration configuration =
                ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
        //的到数据库四要素
        configuration.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/oa_database?useUnicode=true&characterEncoding=utf-8");
        configuration.setJdbcDriver("com.mysql.jdbc.Driver");
        configuration.setJdbcUsername("root");
        configuration.setJdbcPassword("*******");
        //设置建表策略
        /*
         * 这个方法提供了三个参数(后两种都不常用,程序员只需要使用第一种  false 就可以了)
         * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE:数据库中没有表就报错
         * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE :数据库中没有表就创建,有表就拉到
         * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE :每次都删除表创建新表
         * */
        configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE);

        //创建工作流引擎对象。
        /*
         * 这个对象被创建的同时,系统就会创建所有必要的表。
         * */
        ProcessEngine processEngine = configuration.buildProcessEngine();
        System.out.println(processEngine);
    }

    @Test
    public void TestSecondActivitiEngine(){
        ProcessEngineConfiguration configuration = 
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        ProcessEngine processEngine = configuration.buildProcessEngine();
        System.out.println(processEngine);
    }

    @Test
    public void TestThirdActivitiEngine(){
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        System.out.println(processEngine);
    }

activiti.cfg.xml文件


<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver">property>
        <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/oa_database?useUnicode=true&characterEncoding=utf-8">property>
        <property name="jdbcUsername" value="root">property>
        <property name="jdbcPassword" value="*****">property>
        <property name="databaseSchemaUpdate" value="false">property>
    bean>

beans>

你可能感兴趣的:(activiti入门)