zoukankan      html  css  js  c++  java
  • 保障房项目总结(后台)

    1、非常常用的时间格式化

    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    2、关于mybatis或mybatis-plus踩的坑

    • 单表查询直接使用queryWrapper的方法,如下,这个查询的where条件有两个,分别是build_id和status,
      service.list(new QueryWrapper<Obj>().eq("build_id", buildId).eq("status", "1"));
    • mybatis在进行对象更新时,默认只更新有值的字段,字段为null时,自动忽略掉,不进行更新,除非设置了强制更新
    • 注:单表查询中如果有条件匹配两个字段,如下,同一个条件匹配两个字段,and 把or 括起来。
      queryWrapper.and(wrapper -> wrapper.like("name", deviceId).or().like("serial_number", deviceId))
    • 如果是多表查询,通常是自己手动写SQL语句@Select里面,可以传pageable作为第一个参数来对结果分页(pageable只能作为第一个参数,否则会抛selectOne()异常)。但是返回的主体一定是Map<String,Object>,即使查询的字段与对象一致,也不能使用List<Obj>来接收,只能接收到[null,null……]
    • 有时候在更新对象时,不是根据对象主键进行更新,是根据某字段进行更新,如下:通过collect_id更新对象的delete_time,state字段;这样的弊端是:通过某字段更新的方式,不能进行批量。只有通过主键更新才可以批量

      Dispatch dispatch = new Dispatch();
      dispatch.setDeleteTime(new Date());
      dispatch.setState("3");
      dispatchService.update(dispatch, new UpdateWrapper<TResidentAuthDispatch>().eq("collect_id", item.getAuthor_id()));
    • 在使用left join 多表连接时,可以直接对查询结果进行连接,详情见随笔:

    3、定时任务,可使用@cron来配置执行时间、执行频率等等

    4、在业务系统中常常有文件传输的操作,当传输耽搁文件时,可使用来接收,如下一,这里前台是传的一个复杂表单,对象字段用对象接收,文件单独接收;如果是一个文件的list,后台也需要使用list来接收;

    //单个文件对象,含其他字段
    addOrEditUser(@RequestParam(name = "picpath1", required = false) MultipartFile file,AdminUser user);
    //多个文件对象同时传输
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    List<MultipartFile> mflist = multipartRequest.getFiles("file"); 

    5、关于JSON对象转换的问题,asyncData是请求传回来的值,即使使用list<EquipResp>接收返回数据,可以转换成一个JSON的对象集合,可以获取集合的size(),但asyncData.get(j).getAge()竟然会报错(JSON转化异常),这就让人纳闷了,好吧!那就转换一次吧 !依然还是需要转换才能真正获取对象。

    quipResp resp = JSONObject.parseObject(asyncData.get(j) + "", EquipResp.class);

    6、上传文件时常常会用到的获取项目真实部署路径,项目部署名

    request.getServletContext().getRealPath("/"));
    //D:00AAA.metadata.pluginsorg.eclipse.wst.server.core mp2wtpwebappskun-house-deploy
    request.getServletContext().getContextPath();//house

    7、System.currentTimeMillis(); 系统毫秒值

    8、后台请求查出来的数据编码正常,传输到前台乱码,此时需要设置requestMapping里面的编码为UTF-8。在requestMapping中加入这个属性,
      produces = MediaType.APPLICATION_JSON_UTF8_VALUE

    9、char 与 int 默认自动转化 ,真的不容易发现的问题!!!

  • 相关阅读:
    vue 倒计时返回首页
    vue2借助animate.css实现路由动画效果
    CSS3实现文本垂直排列
    button在点击时出现边框
    vue项目中设置背景图片
    Python -处理PDF
    Python学习笔记(1)-列表
    转:Redis 的安装配置介绍
    转:windows xp下如何安装SQL server2000企业版
    转:CodeCube提供可共享、可运行的代码示例
  • 原文地址:https://www.cnblogs.com/CatcherLJ/p/11474255.html
Copyright © 2011-2022 走看看