2021.7.12-2021.7.16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、接口文档

自己手写。
github上传接口文档:
https://jingyan.baidu.com/article/64d05a021b96aade55f73b2e.html
使用md文档

二、Mybatis中的where

在使用Mybatis的动态sql时,有时会遇到根据条件判断添加where后面的筛选条件
比如:

 <delete id="del" parameterType="map">
        DELETE FROM film_info
        <where>
            <if test="release_date != null">
                <![CDATA[
                        and release_date > #{release_date}
                        ]]>
            </if>
        </where>
    </delete>

where标签会在至少有一个子元素的条件返回sql语句的情况下才会去插入 where
如何开头为 and 或者 or 也会将其清除。
用trim标签也可以实现

三、原型图

产品经理–>原型图—>ui设计---->出图---->前端

在这里插入图片描述

四、apipost生成接口文档

ApiPost是一个支持团队协作,并可直接生成文档的API调试、管理工具。它支持模拟POST、GET、PUT等常见请求,是后台接口开发者或前端、接口测试人员不可多得的工具 。使用者不仅可以利用apiopst调试接口,还可以书写相关注释(接口文档),方便的生成可读性好、界面美观的在线接口文档。

类似于postman、但是是中文的
具体操作网址:https://blog.csdn.net/wkkkk_k/article/details/106492736

五、excel表格换行 加大

换行:alt+回车
加大单元格:点最上面的或者最昨天的 对列宽、行高进行设置

六、mysql bigint类型

bigint支持的数字的大小范围为:19位,存电话号码。有符号范围:-9223372036854775808 到 9223372036854775807

int支持的数字范围为:10位,有符号范围:-2147483648 到 2147483647 无符号范围:0-4294967295

存入一个大的数值并不报错,但实际存到表里面的数据就是19位数字支持的最大数字

七、java中date如何计算半年前

//计算半年后
        Format f = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        System.out.println("当前时间:" + f.format(c.getTime()));
        //这里是半年后,如果是半年前则是-6
        //周、天则在前面设置
        c.add(Calendar.MONTH, 6);
        System.out.println("半年后:" + f.format(c.getTime()));
        String format = f.format(c.getTime());
        DateFormat format1 =new SimpleDateFormat("yyyy-MM-dd");
        //转成date类型
        try {
            Date parse = format1.parse(format);
            System.out.println(parse+"DATE!!!!!");
        } catch (ParseException e) {
            e.printStackTrace();
        }

八、mybatis中的时间比较

    <delete id="del" parameterType="map">
        DELETE FROM film_info
        <where>
            <if test="release_date != null">
                <![CDATA[
                        and release_date > #{release_date}
                        ]]>
            </if>
        </where>
    </delete>

其中CDATA的作用是里面包含的为纯文本文件,所以里面的 > < & " “” 等本需要转译的符号 就不需要进行转译了

但是你如果在里面写标签的话,也会不起作用的。

写法:

<![CDATA[文本内容]]>

CDATA的文本内容中不能出现字符串"]]>"
CDATA不能嵌套。
"]]>"这部分不能包含空格或者换行

xml中需要的转译字符:
 在XML中,需要转义的字符有:
  (1)&   &amp;
  (2)<   &lt;
  (3)>   &gt;
  (4)"  &quot;
  (5)'  &apos;

九、定时任务

1.在程序入口加上@EnableScheduling,开启调度任务。
1.5.在定时类上添加@component注解
2.写方法 启到相应的作用
3.在方法上加@Scheduled(cron = “0 0 0 * * *”)注解
4.括号中的内容为cron表达式
例如@Scheduled(cron=“0 35 10 14 1/6 ?”)
表达的意思为从当前月开始 每六个月的十四号 10:35:00 执行一次这个方法
http://cron.qqe2.com 在线生成cron表达式

十、Aop 环绕通知 around

在之前的写法中,因为要计算耗时,所以我写了两个方法

@Before
@After

来分别计算时间来获得耗时,但是因为在两个方法中,所以需要设置一个外面的变量做存储。
Long memeryTime;

对于实体类我也是这么做的 ,因为在两个方法中都需要分别对实体进行set操作。

LogDo logdo = new LogDo;

但在一种情况下出现了问题。

在一个按钮点击后对两个接口分别执行了操作,例如保存并执行。此时Aop日志记录下来的内容是十分不准确的,非常混乱,最后定位觉得是这个地方出现了问题,可以进行改善,使用环绕通知写在一个方法中。

环绕通知可以自己决定让方法什么时候执行

    @Around("logPoinCut()")
    public void around(ProceedingJoinPoint joinpoint){
        MethodSignature signature=(MethodSignature) joinpoint.getSignature();
        Method method = signature.getMethod();
        Mylog annotation = method.getAnnotation(Mylog.class);
        String value = annotation.value();
        System.out.println(value);
        long l = System.currentTimeMillis();

        try {
        //这里让方法执行 proceed为方法执行的结果
            Object proceed = joinpoint.proceed();
            long l1 = System.currentTimeMillis();
            long l2 = l1 - l;
            System.out.println(l2);
            System.out.println(proceed.toString());
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
    }

本来是这么写的,但是部署到服务器上后又出现了问题。问题的原因是请求没有Response,都为空。经过了解发现了问题所在。
是环绕通知改变了返回值,切面方法需要有返回值,来代替被代理方法返回结果

@Around("point_update()")
public Object update(ProceedingJoinPoint jp) throws Throwable{
  ...
  Object result = jp.proceed();
  ...
  return result;
}

需要按照这样的方法写,问题解决。

十一、基本类型问题

getPage 在进行展示的时候 搜索的情况下有数据,默认的情况下就没有数据了。
发现我在参数类中对于这个参数的类型定义的是 int

在第一次进入 默认没有搜索条件的时候这个参数前端是没有传值的,但是因为他是int类型 默认值为0不是null,所以就变成了搜索值为0的

所以将int 改为inter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值