在控制层创建UserController用于用户的增删改查
package com.xquant.platform.test.activiti.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.activiti.engine.IdentityService;
import org.activiti.engine.identity.Group;
import org.activiti.engine.identity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
protected IdentityService identityService;
@RequestMapping(value = "/add")
public String add() {
return "user_add";
}
@RequestMapping(value = "/save")
public String save(HttpServletRequest request) {
String userid = request.getParameter("userid");
String first = request.getParameter("first");
String last = request.getParameter("last");
String email = request.getParameter("email");
String pwd = request.getParameter("pwd");
createUser(userid, first, last, email, pwd);
return "redirect:/user/list";
}
@RequestMapping(value = "/list")
public String list(Model model) {
// Activiti引擎查询用户 一次性查询全部用户
List<User> datas = identityService.createUserQuery().list();
model.addAttribute("users", datas);
return "user_list";
}
@RequestMapping(value = "/pagelist")
public String pagelist(Model model, HttpServletRequest request) {
long pageSize = 10;
long page = 0;
long totalPage = 0;
long totalRows = 0;
//查询的起始记录数
long firstResult;
//查询的每页显示记录数
long maxResults = pageSize;
// 根据查询的总行数计算总页数
totalRows = identityService.createUserQuery().count();
if (totalRows % pageSize == 0) {
totalPage = totalRows / pageSize;
} else {
totalPage = totalRows / pageSize + 1;
}
if (request.getParameter("page") == null) {
page = 1;
} else {
if (page < 1) {
page = 1;
} else if (page > totalPage) {
page = totalPage;
}
}
firstResult = pageSize * (page - 1);
/**
* 分页查询用户 起始记录数 和 每页显示数
*/
List<User> datas = identityService.createUserQuery().listPage((int) firstResult, (int) maxResults);
model.addAttribute("users", datas);
model.addAttribute("currentPage", page);
model.addAttribute("totalPage", totalPage);
return "user_list2";
}
@RequestMapping(value = "/view/{id}")
public ModelAndView view(@PathVariable String id) {
ModelAndView mv = new ModelAndView();
// 根据用户id查询用户 当然还可以按照其他条件userEmail().userEmailLike().orderByUserEmail()
User data = identityService.createUserQuery().userId(id).singleResult();
// 用于查询指定Id用户所在的组
List<Group> groupList = identityService.createGroupQuery()
.groupMember(id).list();
mv.setViewName("user_view");
mv.addObject("user", data);
mv.addObject("groupList", groupList);
return mv;
}
@RequestMapping(value = "/edit/{id}")
public ModelAndView edit(@PathVariable String id) {
ModelAndView mv = new ModelAndView();
User data = identityService.createUserQuery().userId(id).singleResult();
mv.setViewName("user_edit");
mv.addObject("user", data);
return mv;
}
@RequestMapping(value = "/update")
public String update(HttpServletRequest request) {
String userid = request.getParameter("userid");
String first = request.getParameter("first");
String last = request.getParameter("last");
String email = request.getParameter("email");
String pwd = request.getParameter("pwd");
updateUser(userid, first, last, email, pwd);
return "redirect:/user/list";
}
@RequestMapping(value = "/delete/{id}")
public String delete(@PathVariable String id) {
identityService.deleteUser(id);
return "redirect:/user/list";
}
/**
* 用于创建activiti的用户 如果用户已经存在 那么就更新记录
*/
public void createUser(String id, String firstname, String lastname, String email, String password) {
// 调用newUser方法创建User实例
User user = identityService.newUser(id);
user.setFirstName(firstname);
user.setLastName(lastname);
user.setEmail(email);
user.setPassword(password);
identityService.saveUser(user);
// 可以设置用户附加信息 这些信息保存在ACT_ID_INFO表当中
identityService.setUserInfo(id, "name", firstname.concat(lastname));
// 获取UserInfo
String name = identityService.getUserInfo(id, "name");
System.out.println("userInfo:name = " + name);
// 获取一个用户的所有UserInfoKeys
List<String> userInfoKeys = identityService.getUserInfoKeys(id);
System.out.println("userInfoKeys = " + userInfoKeys);
}
public void updateUser(String id, String firstname, String lastname, String email, String password) {
// 调用singleResult方法取出User实例
User user = identityService.createUserQuery().userId(id).singleResult();
user.setFirstName(firstname);
user.setLastName(lastname);
user.setEmail(email);
user.setPassword(password);
identityService.saveUser(user);
}
}
其中涉及的jsp页面如下所示
src/main/webapp/WEB-INF/views/user_add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html lang="en">
<head>
<title>用户管理-新增</title>
<link rel="stylesheet" rev="stylesheet" href="<%=basePath%>css/style.css" type="text/css" media="all" />
<script type="text/javascript" src="<%=basePath%>js/My97DatePicker/WdatePicker.js"></script>
</head>
<body>
<form action="save" method="post" name="fom" id="fom">
<div class="MainDiv">
<table width="60%" border="0" cellpadding="0" cellspacing="0" class="CContent">
<tr>
<th class="tablestyle_title" >用户添加页面</th>
</tr>
<tr>
<td class="CPanel">
<table border="0" cellpadding="0" cellspacing="0" style="width:100%">
<TR>
<TD width="100%">
<fieldset style="height:100%;">
<legend>添加用户</legend>
<table border="0" cellpadding="2" cellspacing="1" style="width:100%">
<tr>
<td nowrap align="right" width="13%">用户ID:</td>
<td width="41%"><input name="userid" id="userid" class="text" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户姓:</td>
<td width="41%"><input name="first" id="first" class="text" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户名:</td>
<td width="41%"><input name="last" id="last" class="text" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户Email:</td>
<td width="41%"><input name="email" id="email" class="text" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户密码:</td>
<td width="41%"><input name="pwd" id="pwd" class="text" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
</table>
</fieldset>
</TD>
</TR>
</TABLE>
</td>
</tr>
<tr>
<TD colspan="2" align="center" height="50px">
<input type="submit" name="Submit" value="保存" class="button"/>
<input type="button" name="Submit2" value="返回" class="button" onclick="window.history.go(-1);"/>
</TD>
</tr>
</table>
</div>
</form>
</body>
</html>
src/main/webapp/WEB-INF/views/user_edit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html lang="en">
<head>
<title>用户管理-编辑</title>
<link rel="stylesheet" rev="stylesheet" href="<%=basePath%>css/style.css" type="text/css" media="all" />
<script type="text/javascript" src="<%=basePath%>js/My97DatePicker/WdatePicker.js"></script>
</head>
<body>
<form action="../update" method="post" name="fom" id="fom">
<div class="MainDiv">
<table width="60%" border="0" cellpadding="0" cellspacing="0" class="CContent">
<tr>
<th class="tablestyle_title" >用户编辑页面</th>
</tr>
<tr>
<td class="CPanel">
<table border="0" cellpadding="0" cellspacing="0" style="width:100%">
<TR>
<TD width="100%">
<fieldset style="height:100%;">
<legend>编辑用户</legend>
<table border="0" cellpadding="2" cellspacing="1" style="width:100%">
<tr>
<td nowrap align="right" width="13%">用户ID:</td>
<td width="41%">${user.getId()}
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户姓:</td>
<td width="41%"><input name="first" id="first" class="text" value="${user.getFirstName()}" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户名:</td>
<td width="41%"><input name="last" id="last" class="text" value="${user.getLastName()}" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户Email:</td>
<td width="41%"><input name="email" id="email" class="text" value="${user.getEmail()}" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户密码:</td>
<td width="41%"><input name="pwd" id="pwd" class="text" value="${user.getPassword()}" style="width:250px" type="text" size="40" />
<span class="red"> *</span></td>
</tr>
</table>
</fieldset>
</TD>
</TR>
</TABLE>
</td>
</tr>
<tr>
<TD colspan="2" align="center" height="50px">
<input name="userid" id="userid" value="${user.getId()}" class="text" style="width:250px" type="hidden" size="40" />
<input type="submit" name="Submit" value="保存" class="button"/>
<input type="button" name="Submit2" value="返回" class="button" onclick="window.history.go(-1);"/>
</TD>
</tr>
</table>
</div>
</form>
</body>
</html>
src/main/webapp/WEB-INF/views/user_list.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Zioer-Activiti示例9-1</title>
<link rel="stylesheet" rev="stylesheet" href="<%=basePath%>css/style.css" type="text/css" media="all" />
<script language=JavaScript>
function link(){
document.location.href="add";
}
function link2(){
document.location.href="pagelist";
}
function link3(){
document.location.href="<%=basePath%>group/list";
}
function link4(){
document.location.href="<%=basePath%>login/";
}
</script>
</head>
<body class="ContentBody">
<form action="add" method="post" name="fom" id="fom">
<div class="MainDiv">
<table width="60%" border="0" cellpadding="0" cellspacing="0" class="CContent">
<tr>
<th class="tablestyle_title" >Activiti示例9-1</th>
</tr>
<tr>
<td class="CPanel">
<table id="subtree1" style="DISPLAY: " width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20">
<span class="newfont07">
<input name="Submit1" type="button" class="right-button08" value="新增" onclick="link();"/>
</span>
<span class="newfont07">
<input name="Submit2" type="button" class="right-button08" value="分页数据" onclick="link2();"/>
</span>
<span class="newfont07">
<input name="Submit3" type="button" class="right-button08" value="组管理" onclick="link3();"/>
</span>
<span class="newfont07">
<input name="Submit4" type="button" class="right-button08" value="费用报销流程" onclick="link4();"/>
</span>
</td>
</tr>
<tr>
<td height="40" class="font42">
<table width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFEE" class="newfont03">
<tr class="CTitle" >
<td height="22" colspan="4" align="center" style="font-size:16px">用户详细列表</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="27%" height="30">用户ID</td>
<td width="20%">用户姓名</td>
<td width="36%">用户Email</td>
<td width="17%">操作</td>
</tr>
<c:forEach items="${users}" var="var" varStatus="vs">
<tr <c:if test="${vs.count%2==0}">bgcolor="#AAAABB"</c:if> align="left" >
<td >${var.getId()}</td>
<td height="30">${var.getFirstName()}${var.getLastName()}</td>
<td >${var.getEmail()}</td>
<td ><a href="<%=basePath%>user/view/${var.getId()}">查看</a>
<a href="<%=basePath%>user/edit/${var.getId()}">编辑</a>
<a href="<%=basePath%>user/delete/${var.getId()}">删除</a></td>
</tr>
</c:forEach>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
src/main/webapp/WEB-INF/views/user_list2.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Zioer-Activiti示例9-1</title>
<link rel="stylesheet" rev="stylesheet" href="<%=basePath%>css/style.css" type="text/css" media="all" />
<script language=JavaScript>
function link(){
document.location.href="add";
}
function link2(){
document.location.href="list";
}
</script>
</head>
<body class="ContentBody">
<div class="MainDiv">
<table width="60%" border="0" cellpadding="0" cellspacing="0" class="CContent">
<tr>
<th class="tablestyle_title" >Activiti示例9-1</th>
</tr>
<tr>
<td class="CPanel">
<table id="subtree1" style="DISPLAY: " width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20">
<span class="newfont07">
<input name="Submit2" type="button" class="right-button08" value="新增" onclick="link();"/>
<input name="Submit2" type="button" class="right-button08" value="单页数据" onclick="link2();"/>
</span>
</td>
</tr>
<tr>
<td height="40" class="font42">
<table width="100%" border="0" cellpadding="4" cellspacing="1" bgcolor="#FFFFEE" class="newfont03">
<tr class="CTitle" >
<td height="22" colspan="4" align="center" style="font-size:16px">用户详细列表</td>
</tr>
<tr bgcolor="#EEEEEE">
<td width="27%" height="30">用户ID</td>
<td width="20%">用户姓名</td>
<td width="36%">用户Email</td>
<td width="17%">操作</td>
</tr>
<c:forEach items="${users}" var="var" varStatus="vs">
<tr <c:if test="${vs.count%2==0}">bgcolor="#AAAABB"</c:if> align="left" >
<td >${var.getId()}</td>
<td height="30">${var.getFirstName()}${var.getLastName()}</td>
<td >${var.getEmail()}</td>
<td ><a href="<%=basePath%>user/view/${var.getId()}">查看</a>
<a href="<%=basePath%>user/edit/${var.getId()}">编辑</a>
<a href="<%=basePath%>user/delete/${var.getId()}">删除</a></td>
</tr>
</c:forEach>
<tr >
<td height="22" colspan="4" align="center" style="font-size:16px">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="6"><img src="../images/spacer.gif" width="1" height="1" /></td>
</tr>
<tr>
<td height="33"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="right-font08">
<tr>
<td width="50%">共 <span class="right-text09">${totalPage}</span> 页 | 第 <span class="right-text09">${currentPage}</span> 页</td>
<td width="49%" align="right">[<a href="?page=1" class="right-font08">首页</a> | <a href="?page=${currentPage - 1}" class="right-font08">上一页</a> | <a href="?page=${currentPage + 1}" class="right-font08">下一页</a> | <a href="?page=${totalPage}" class="right-font08">末页</a>] 转至:</td>
<td width="1%"><table width="20" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1%"><input name="textfield3" type="text" class="right-textfield03" size="1" /></td>
<td width="87%"><input name="Submit23222" type="submit" class="right-button06" value=" " />
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
src/main/webapp/WEB-INF/views/user_view.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title>用户管理-查看</title>
<link rel="stylesheet" rev="stylesheet" href="<%=basePath%>css/style.css" type="text/css" media="all" />
</head>
<body class="ContentBody">
<div class="MainDiv">
<table width="60%" border="0" cellpadding="0" cellspacing="0" class="CContent">
<tr>
<th class="tablestyle_title" >用户查看页面</th>
</tr>
<tr>
<td class="CPanel">
<table border="0" cellpadding="0" cellspacing="0" style="width:100%">
<TR>
<TD width="100%">
<fieldset style="height:100%;">
<legend>查看用户信息</legend>
<table border="0" cellpadding="4" cellspacing="1" style="width:100%" class="newfont03">
<tr>
<td nowrap align="right" width="13%">用户ID:</td>
<td width="41%">${user.getId()}</td>
</tr>
<tr>
<td nowrap align="right" width="13%">用户姓名:</td>
<td width="41%">${user.getFirstName()}${user.getLastName()}</td>
</tr>
<tr>
<td nowrap align="right" width="13%">Email:</td>
<td width="41%">${user.getEmail()}</td>
</tr>
<tr>
<td nowrap align="right" width="13%">所属组e:</td>
<td width="41%">
<c:forEach items="${groupList}" var="var" varStatus="vs">
${var.getName()}
</c:forEach>
</td>
</tr>
</table>
</fieldset>
</TD>
</TR>
</TABLE>
</td>
</tr>
<tr>
<TD colspan="2" align="center" height="50px">
<input type="button" name="Submit2" value="返回" class="button" onclick="window.history.go(-1);"/>
</TD>
</tr>
</table>
</div>
</body>
</html>
启动项目,访问地址http://localhost:8080/user/list
通过上面的新增按钮可以添加用户,右边的操作下的编辑、删除、查看可以修改、删除、查看用户的信息。
最后数据库里面ACT_ID_USER表中包含有数据如下所示
在控制台会看到以下的日志
2021-03-25 17:23:04.770 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- starting CreateUserCmd --------------------------------------------------------
2021-03-25 17:23:04.785 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- CreateUserCmd finished --------------------------------------------------------
2021-03-25 17:23:04.785 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.786 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.786 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- starting SaveUserCmd --------------------------------------------------------
2021-03-25 17:23:04.788 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : insert org.activiti.engine.impl.persistence.entity.UserEntity@147a6f76
2021-03-25 17:23:04.788 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : flush summary: 1 insert, 0 update, 0 delete.
2021-03-25 17:23:04.788 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : now executing flush...
2021-03-25 17:23:04.788 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : inserting: org.activiti.engine.impl.persistence.entity.UserEntity@147a6f76
2021-03-25 17:23:04.788 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.entity.UserEntity.insertUser : ==> Preparing: insert into ACT_ID_USER (ID_, REV_, FIRST_, LAST_, EMAIL_, PWD_) values ( ?, 1, ?, ?, ?, ? )
2021-03-25 17:23:04.789 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.entity.UserEntity.insertUser : ==> Parameters: 100005(String), 马(String), 超(String), machao@sanguo.com(String), machao(String)
2021-03-25 17:23:04.795 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.entity.UserEntity.insertUser : <== Updates: 1
2021-03-25 17:23:04.803 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- SaveUserCmd finished --------------------------------------------------------
2021-03-25 17:23:04.804 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.804 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.805 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- starting SetUserInfoCmd --------------------------------------------------------
2021-03-25 17:23:04.806 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : ==> Preparing: select * from ACT_ID_INFO where USER_ID_ = ? and KEY_ = ? and PARENT_ID_ is null
2021-03-25 17:23:04.807 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : ==> Parameters: 100005(String), name(String)
2021-03-25 17:23:04.809 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : <== Total: 0
2021-03-25 17:23:04.811 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : insert org.activiti.engine.impl.persistence.entity.IdentityInfoEntity@213ee687
2021-03-25 17:23:04.812 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : flush summary: 1 insert, 0 update, 0 delete.
2021-03-25 17:23:04.812 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : now executing flush...
2021-03-25 17:23:04.812 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : inserting: org.activiti.engine.impl.persistence.entity.IdentityInfoEntity@213ee687
2021-03-25 17:23:04.812 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.e.I.insertIdentityInfo : ==> Preparing: insert into ACT_ID_INFO (ID_, REV_, USER_ID_, TYPE_, KEY_, VALUE_, PASSWORD_, PARENT_ID_) values ( ?, 1, ?, ?, ?, ?, ?, ? )
2021-03-25 17:23:04.813 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.e.I.insertIdentityInfo : ==> Parameters: 32506(String), 100005(String), userinfo(String), name(String), 马超(String), null, null
2021-03-25 17:23:04.817 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.i.p.e.I.insertIdentityInfo : <== Updates: 1
2021-03-25 17:23:04.826 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- SetUserInfoCmd finished --------------------------------------------------------
2021-03-25 17:23:04.826 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.827 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.827 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- starting GetUserInfoCmd --------------------------------------------------------
2021-03-25 17:23:04.829 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : ==> Preparing: select * from ACT_ID_INFO where USER_ID_ = ? and KEY_ = ? and PARENT_ID_ is null
2021-03-25 17:23:04.829 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : ==> Parameters: 100005(String), name(String)
2021-03-25 17:23:04.831 TRACE 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : <== Columns: ID_, REV_, USER_ID_, TYPE_, KEY_, VALUE_, PASSWORD_, PARENT_ID_
2021-03-25 17:23:04.831 TRACE 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : <== Row: 32506, 1, 100005, userinfo, name, 马超, <<BLOB>>, null
2021-03-25 17:23:04.832 DEBUG 8804 --- [nio-8080-exec-7] i.p.e.I.selectIdentityInfoByUserIdAndKey : <== Total: 1
2021-03-25 17:23:04.832 TRACE 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.IdentityInfoEntity@4ba4cdfe' was not updated
2021-03-25 17:23:04.832 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : flush summary: 0 insert, 0 update, 0 delete.
2021-03-25 17:23:04.832 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : now executing flush...
2021-03-25 17:23:04.840 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- GetUserInfoCmd finished --------------------------------------------------------
2021-03-25 17:23:04.840 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
userInfo:name = 马超
2021-03-25 17:23:04.841 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.841 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- starting GetUserInfoKeysCmd --------------------------------------------------------
2021-03-25 17:23:04.843 DEBUG 8804 --- [nio-8080-exec-7] .I.selectIdentityInfoKeysByUserIdAndType : ==> Preparing: select KEY_ from ACT_ID_INFO where USER_ID_ = ? and TYPE_ = ? and PARENT_ID_ is null
2021-03-25 17:23:04.843 DEBUG 8804 --- [nio-8080-exec-7] .I.selectIdentityInfoKeysByUserIdAndType : ==> Parameters: 100005(String), userinfo(String)
2021-03-25 17:23:04.846 TRACE 8804 --- [nio-8080-exec-7] .I.selectIdentityInfoKeysByUserIdAndType : <== Columns: KEY_
2021-03-25 17:23:04.846 TRACE 8804 --- [nio-8080-exec-7] .I.selectIdentityInfoKeysByUserIdAndType : <== Row: name
2021-03-25 17:23:04.846 DEBUG 8804 --- [nio-8080-exec-7] .I.selectIdentityInfoKeysByUserIdAndType : <== Total: 1
2021-03-25 17:23:04.847 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : flush summary: 0 insert, 0 update, 0 delete.
2021-03-25 17:23:04.847 DEBUG 8804 --- [nio-8080-exec-7] o.activiti.engine.impl.db.DbSqlSession : now executing flush...
2021-03-25 17:23:04.851 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor : --- GetUserInfoKeysCmd finished --------------------------------------------------------
2021-03-25 17:23:04.851 DEBUG 8804 --- [nio-8080-exec-7] o.a.e.impl.interceptor.LogInterceptor :
userInfoKeys = [name]
2021-03-25 17:23:04.865 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.865 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor : --- starting CreateUserQueryCmd --------------------------------------------------------
2021-03-25 17:23:04.870 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor : --- CreateUserQueryCmd finished --------------------------------------------------------
2021-03-25 17:23:04.870 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.870 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor :
2021-03-25 17:23:04.870 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor : --- starting UserQueryImpl --------------------------------------------------------
2021-03-25 17:23:04.872 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : ==> Preparing: select RES.* from ACT_ID_USER RES order by RES.ID_ asc LIMIT ? OFFSET ?
2021-03-25 17:23:04.872 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : ==> Parameters: 2147483647(Integer), 0(Integer)
2021-03-25 17:23:04.874 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Columns: ID_, REV_, FIRST_, LAST_, EMAIL_, PWD_, PICTURE_ID_
2021-03-25 17:23:04.874 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100000, 1, 张, 飞, zhangfei@sanguo.com, zhangfei, null
2021-03-25 17:23:04.876 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100001, 1, 关, 羽, guangyu@sanguo.com, guanyu, null
2021-03-25 17:23:04.876 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100002, 1, 刘, 备, liubei@sanguo.com, liubei, null
2021-03-25 17:23:04.876 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100003, 2, 赵, 云, zhaoyunyun@sanguo.com, zhaoyun, null
2021-03-25 17:23:04.876 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100004, 1, 黄, 忠, huangzhong@sanguo.com, huangzhong, null
2021-03-25 17:23:04.878 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 100005, 1, 马, 超, machao@sanguo.com, machao, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 200000, 1, 曹, 操, caocao@sanguo.com, caocao, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 200001, 1, 夏侯, 渊, xiahouyuan@sanguo.com, xiahouyuan, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 200002, 1, 夏侯, 惇, xiahoudun@sanguo.com, xiahoudun, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 300000, 1, 孙, 权, sunquan@sanguo.com, sunquan, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 300001, 1, 周, 瑜, zhouyu@sanguo.com, zhouyu, null
2021-03-25 17:23:04.879 TRACE 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Row: 300002, 1, 陆, 逊, luxun@sanguo.com, luxun, null
2021-03-25 17:23:04.880 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.i.p.e.U.selectUserByQueryCriteria : <== Total: 12
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@7c47a005' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@6308b6e5' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@ba12be8' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@139bb159' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@521d7ca7' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@7484479f' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@76f8cc8c' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@3827aa73' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@1e60194' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@57881688' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@67a42c59' was not updated
2021-03-25 17:23:04.880 TRACE 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : loaded object 'org.activiti.engine.impl.persistence.entity.UserEntity@625576ec' was not updated
2021-03-25 17:23:04.880 DEBUG 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : flush summary: 0 insert, 0 update, 0 delete.
2021-03-25 17:23:04.880 DEBUG 8804 --- [nio-8080-exec-8] o.activiti.engine.impl.db.DbSqlSession : now executing flush...
2021-03-25 17:23:04.885 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor : --- UserQueryImpl finished --------------------------------------------------------
2021-03-25 17:23:04.885 DEBUG 8804 --- [nio-8080-exec-8] o.a.e.impl.interceptor.LogInterceptor :