一 Activiti查询用户信息
1 代码
package com.syc.activiti;
import org.activiti.engine.IdentityService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.identity.User;
public class GetUserInfo {
public static void main(String[] args) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到身份服务组件实例
IdentityService identityService = engine.getIdentityService();
// 创建用户
creatUser(identityService, "1", "angus", "young", "yangenxiong@163.com", "abc");
// 创建一个用户信息
identityService.setUserInfo("1", "age", "30");
// 创建第二个用户信息
identityService.setUserInfo("1", "weight", "60KG");
// 查询用户信息
String value = identityService.getUserInfo("1", "age");
System.out.println("用户年龄为:" + value);
}
//创建用户方法
static void creatUser(IdentityService identityService, String id, String first, String last, String email, String passwd) {
// 使用newUser方法创建User实例
User user = identityService.newUser(id);
// 设置用户的各个属性
user.setFirstName(first);
user.setLastName(last);
user.setEmail(email);
user.setPassword(passwd);
// 使用saveUser方法保存用户
identityService.saveUser(user);
}
}
2 运行结果
用户年龄为:30
3 数据库
mysql> select * from act_id_info;
+------+------+----------+----------+--------+--------+-----------+------------+
| ID_ | REV_ | USER_ID_ | TYPE_ | KEY_ | VALUE_ | PASSWORD_ | PARENT_ID_ |
+------+------+----------+----------+--------+--------+-----------+------------+
| 2501 | 1 | 1 | userinfo | age | 30 | NULL | NULL |
| 2502 | 1 | 1 | userinfo | weight | 60KG | NULL | NULL |
+------+------+----------+----------+--------+--------+-----------+------------+
2 rows in set (0.00 sec)
mysql> select * from act_id_user;
+-----+------+--------+-------+---------------------+------+-------------+
| ID_ | REV_ | FIRST_ | LAST_ | EMAIL_ | PWD_ | PICTURE_ID_ |
+-----+------+--------+-------+---------------------+------+-------------+
| 1 | 1 | angus | young | yangenxiong@163.com | abc | NULL |
+-----+------+--------+-------+---------------------+------+-------------+
1 row in set (0.00 sec)
二 绑定用户与用户组的关系
1 代码
package com.syc.activiti;
import org.activiti.engine.IdentityService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;
public class CreateMemberShip {
public static void main(String[] args) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到身份服务组件实例
IdentityService identityService = engine.getIdentityService();
// 保存一个用户
User user = creatUser(identityService, "1", "angus", "young", "yangenxiong@163.com", "abc");
// 保存一个用户组
Group group = createGroup(identityService, "2", "经理组", "manager");
// 绑定关系
identityService.createMembership(user.getId(), group.getId());
}
//创建用户方法
static User creatUser(IdentityService identityService, String id, String first, String last, String email, String passwd) {
// 使用newUser方法创建User实例
User user = identityService.newUser(id);
// 设置用户的各个属性
user.setFirstName(first);
user.setLastName(last);
user.setEmail(email);
user.setPassword(passwd);
// 使用saveUser方法保存用户
identityService.saveUser(user);
return identityService.createUserQuery().userId(id).singleResult();
}
// 将用户组数据保存到数据库中
static Group createGroup(IdentityService identityService, String id,
String name, String type) {
// 调用newGroup方法创建Group实例
Group group = identityService.newGroup(id);
group.setName(name);
group.setType(type);
identityService.saveGroup(group);
return identityService.createGroupQuery().groupId(id).singleResult();
}
}
2 数据库
mysql> select * from act_id_user;
+-----+------+--------+-------+---------------------+------+-------------+
| ID_ | REV_ | FIRST_ | LAST_ | EMAIL_ | PWD_ | PICTURE_ID_ |
+-----+------+--------+-------+---------------------+------+-------------+
| 1 | 1 | angus | young | yangenxiong@163.com | abc | NULL |
+-----+------+--------+-------+---------------------+------+-------------+
1 row in set (0.00 sec)
mysql> select * from act_id_group;
+-----+------+-----------+---------+
| ID_ | REV_ | NAME_ | TYPE_ |
+-----+------+-----------+---------+
| 2 | 1 | 经理组 | manager |
+-----+------+-----------+---------+
1 row in set (0.00 sec)
mysql> select * from act_id_membership;
+----------+-----------+
| USER_ID_ | GROUP_ID_ |
+----------+-----------+
| 1 | 2 |
+----------+-----------+
1 row in set (0.00 sec)
来源:oschina
链接:https://my.oschina.net/u/4374260/blog/3238203