List<String> stringStream3 = students.stream().map(
student -> (student.getName() + "," + student.getSex())).flatMap(
s -> Arrays.stream(s.split(","))).collect(Collectors.toList());
System.out.println("测试map映射拼接3:" + stringStream3);
;
boolean contains3 = stringStream3.contains("王五");
log.info("[mytest]={}", contains3);
批量写入数据性能优化:
mybatis的xml代码:
<insert id="saveAll" parameterType="collection">
INSERT INTO account_bank (user_id, bank_no, bank, branch, province, city, area, add_time, add_ip, status,
pic_path, tpp_card_id, mobile_phone)
VALUES
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.userId}, #{item.bankNo}, #{item.bank}, #{item.branch}, #{item.province}, #{item.city}, #{item.area}, #{item.addTime}, #{item.addIp}, #{item.status}, #{item.picPath}, #{item.tppCardId}, #{item.mobilePhone})
</foreach>
</insert>
1.能处理的本级部门流程
1.2查到授权了并且授权截止日期大于等于。当天的本级lv3部门列表和权限表Cmc主任包含操作人的部门列表交集。
1.3取并集,二级肯定是没授权,因为二级隔离。
1.4 1.2和1.3取并集的结果 和能Cmc主任能处理流程取交集。
2.能处理的下级部门流程。
2.1权限表查到CMc主任部门列表,作为上级部门列表,直属下级部门列表
2.2过滤出:找到:未授权或授权了,截止日期小于当天。下级部门列表。
2.3取交集就是能处理部门Id,
2.4过滤出和流程去掉二级流程的流程列表再做交集。
最后再去并集
mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
<sql id="Update_By_Example_Where_Clause" >
<where >
<foreach collection="example.oredCriteria" item="criteria" separator="or" >
<if test="criteria.valid" >
<trim prefix="(" suffix=")" prefixOverrides="and" >
<foreach collection="criteria.criteria" item="criterion" >
<choose >
<when test="criterion.noValue" >
and ${criterion.condition}
</when>
<when test="criterion.singleValue" >
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue" >
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue" >
and ${criterion.condition}
<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
// 根据token查询redis。
String json = jedisClient.get(USER_INFO+ token);
// 如果查询不到数据。返回用户已经过期。
if(!StringUtils.isNotBlank(json)){
return E3Result.build(400, "用户信息已过期,请重新登录");
}
//如果查询到数据,说明用户已经登录。
//需要重置key的过期时间。
jedisClient.expire(USER_INFO+ token, SESSION_EXPIRE);
//把json数据转换成TbUser对象,然后使用包装并返回。
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 资源文件拷贝插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
测试类
public class MyTestMain {
public static void main(String[] args) {
// 作为容器,加载配置类,配置类扫描各个包,注入依赖
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(DiConfig.class);
// 获取bean
UserFunctionServiceImpl userFunctionService = context.getBean(UserFunctionServiceImpl.class);
// 调用bean
System.out.println(userFunctionService.sayHello("测试配置类"));
context.close();
}
}
MybatisPlus 使用 saveOrUpdate 详解(慎用),及问题解决方法!
// 根据 Wrapper,查询一条记录。结果集,如果是多个会抛出异常,随机取一条加上限制条件 wrapper.last("LIMIT 1")
T getOne(Wrapper<T> queryWrapper);
pagehelp使用注意:
PageHelper.startPage(1, 30);
//执行查询
TbItemExample example = new TbItemExample();
List<TbItem> list = itemMapper.selectByExample(example);
//取分页信息
PageInfo<TbItem> pageInfo = new PageInfo<>(list);
PageHelper.clear()
``
```java
@Accessors(chain=true)
链式访问,该注解设置chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认的返回void。