工作随笔

2019-02-28

2020-08-20  本文已影响0人  _Alignas
  1. 图1代码段实现了用户信息的查询(包括获取到根据部门分组的用户数量),涉及到的知识点有:
    ①java注解的使用。@Override注解说明该方法是接口同名抽象方法的重写(具体实现);@Transactional(rollbackFor = Exception.class)使该query方法中出现该数据库事务时会回滚。
    ②java8流stream的使用。userList.stream()先将集合userList转化成流,然后可以通过collect()/filter()等方法对流进行收集、过滤等操作。相对于for循环来说,流的优势在于代码比较简洁,更专注于如何实现而非怎么做。
    ③TreeMap与HashMap的区别:HashMap顺序随机,TreeMap默认以key升序排序。
    ④Optional类的使用。
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String,Object> query(UserDto qo) {
    Map<String,Object> queryMap = new HashMap<>();
    List<UserDto> userList = userMapper.queryComplianceStaffs(qo);
    // 获取按psDeptId分组统计的结果,以TreeMap的格式收集流
    TreeMap<String,Long> countMap = userList.stream().collect(Collectors.groupingBy(UserDto::getPsDeptId, TreeMap::new, Collectors.counting()));
    countMap.forEach((k,v)->{
        Optional<UserDto> first = userList.stream().filter(userDTO -> userDTO.getPsDeptId().equals(k)).findFirst();
        first.get().setRowspanCount(v);
    });
    queryMap.put("queryResult",userList);
return queryMap;
}

图1

2.图2代码段涉及到的知识点:
①jquery选择器:("[name='deptSortNo']")、(this)
②jquery方法:(this).attr('psDeptId')、(this).val()
③js方法:each()方法遍历元素

$("[name='deptSortNo']").each(function(){
    if ($(this).attr('psDeptId') == formData.body["psDeptId"]){
        formData.body["deptSortNo"] = $(this).val();
    }
})

图2

  1. 常见sql句法错误:
    ①### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 't.ORG_ID' in 'where clause'
    即where分句中的org_id字段在数据库表t中不存在。
上一篇 下一篇

猜你喜欢

热点阅读