flowable中用户相关api

springboot引入flowable:高版本mysql报错

    <!-- https://mvnrepository.com/artifact/org.flowable/flowable-spring-boot-starter -->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-spring-boot-starter</artifactId>
            <version>6.7.2</version>
        </dependency>


        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>

配置文件

# 应用服务 WEB 访问端口
server.port=8081

spring.datasource.username=root
spring.datasource.password=root1234
# nullCatalogMeansCurrent
spring.datasource.url=jdbc:mysql:///flowable_idm?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&nullCatalogMeansCurrent=true


logging.level.org.flowable = debug

flowable会自动生成需要的表,,跟用户相关的表:

  • ACT_ID_USER : 用户表
  • ACT_ID_GROUP: 角色表
  • ACT_ID_MEMBERSHIP : 用户角色关联表
  • ACT_ID_PROPERTY : 自定义属性表

flowable里面用的乐观锁,每次修改版本都会+1,,如果要修改需要先获取,得到当前版本,,然后再进行更新,,,如果需要新增,需要将revision设置为0

  • IdentityService : 和用户的相关操作
    新增用户:
     UserEntityImpl user = new UserEntityImpl();
        user.setId("cc");
        user.setDisplayName("陈杰");
        user.setPassword("123");
        user.setFirstName("j");
        user.setLastName("c1");
        user.setEmail("121113@qq.com");

        // revision默认为1 ,,,  ,,修改需要设置revision,,,每次修改这个revision字段都会+1
        // 第一次刚好数据库里面是1,,代码中默认是1
        // 修改的时候需要先查询,,,查完之后再去修改
//        user.setRevision(0);

        identityService.saveUser(user);
  User cc = identityService.createUserQuery().userId("cc").singleResult();

        cc.setEmail("hehe@qq.com");
        cc.setPassword("888");

        // 修改用户密码
        identityService.updateUserPassword(cc);

查找:

        List<User> userList = identityService.createUserQuery().userDisplayNameLike("%c%").list();


   List<Group> groups = identityService.createGroupQuery().groupMember("cc").list();

        groups.stream().forEach(item->{
            System.out.println(item.getName());
        });

自定义sql: flowable底层是mybatis

  User user = identityService.createNativeUserQuery().sql("select * from act_id_user where email_=#{email}").parameter("email", "hehe@qq.com").singleResult();
        System.out.println(user.getId()+user.getPassword());
        System.out.println("user = " + user);

删除组:

// ACT_ID_MEMBERSHIP 用户id和组之间的关联关系
        // ACT_ID_GROUP  组
        // 删除的时候会删除这两个表

        identityService.deleteGroup("leader");
  • IdmManagementService :获取系统属性

获取表ACT_ID_PROPERTY的属性值

  Map<String, String> properties = idmManagementService.getProperties();
        for (String s : properties.keySet()) {
            System.out.println(s+"="+properties.get(s));
        }

可以根据指定的类,获取这个类对应的表名,字段名,等:

 // 获取表信息
        String tableName = idmManagementService.getTableName(Group.class);
        System.out.println("tableName = " + tableName);

        TableMetaData tableMetaData = idmManagementService.getTableMetaData(tableName);
        System.out.println("列名 = " + tableMetaData.getColumnNames());
        System.out.println("列类型 = " + tableMetaData.getColumnTypes());
        System.out.println("表名 ="+tableMetaData.getTableName());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值