当前位置: 首页 > news >正文

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());

相关文章:

  • 可观测之Tracing-bpftrace
  • C#委托(delegate)的常用方式
  • 【Qt-信号与槽】connect函数的用法
  • 单细胞分析(19)—— 单细胞转录组基因集评分方法
  • Difyにおけるデータベースマイグレーション手順
  • Linux:进程控制
  • 【Java进阶】java设计模式之单例模式
  • Xcode手动安装SDK模拟器
  • 怎么写C#命令行参数程序,及控制台带参数案例(程序完整源码)下载
  • 2.你有什么绝活儿?—Java能做什么?
  • 计算机网络基础:剖析网络的构成要素
  • 电脑界面锁定的原因分析与解决办法?
  • 0301 leetcode - 1502.判断是否能形成等差数列、 682.棒球比赛、657.机器人能否返回原点
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_add_dump
  • mac安装环境
  • Swan 表达式 - 选择表达式
  • ZK Rollup
  • 记20忘10之六:line
  • 隐私风险加剧,2025年1月超过82000款App被Google Play移除!
  • AI助理精准匹配------助力快速搭建Stable Difussion图像生成应用
  • 演示 又一个wordpress站点/百度seo营销
  • 郑州品牌网站建设/做营销策划的公司
  • 做网站 模板/旺道seo网站优化大师
  • 南阳做网站的公/惠州seo外包费用
  • 网站开发可以用哪些语言/百度百家号登录入口
  • 政府网站信息内容建设情况自查/软件关键词排名