挽风如你
码龄3年
  • 30,597
    被访问
  • 66
    原创
  • 519,404
    排名
  • 15
    粉丝
关注
提问 私信

个人简介:别看我 我就是一个学渣

  • 毕业院校: 四川托普信息技术职业学院
  • 加入CSDN时间: 2019-05-07
博客简介:

挽风博客

查看详细资料
个人成就
  • 获得17次点赞
  • 内容获得23次评论
  • 获得61次收藏
创作历程
  • 40篇
    2021年
  • 29篇
    2020年
成就勋章
TA的专栏
  • JavaSE
    18篇
  • JFinal
    3篇
  • IDEA开发工具
    3篇
  • 实习
    3篇
  • Mybatis
    5篇
  • springboot
    2篇
  • spring
    3篇
  • MySQL
    20篇
  • Java面试题
    12篇
  • 其他
    1篇
  • Web
    5篇
兴趣领域 设置
  • 测试
    测试用例
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

常用APi

获取路径:request.getRequestURL(): 获取完整路径 如:http://localhost:8080/bzbs/system/login.jsprequest.getServletPath():返回除去host和工程名部分的路径 如/system/login.jsprequest.getRequestURI():返回除去host(域名或者ip)部分的路径 如/bzbs/system/login.jsprequest.getContextPath():返回工程名部分,如果工程映射为
原创
发布博客 2021.05.16 ·
48 阅读 ·
0 点赞 ·
0 评论

请求参数校验

我们在写http接口常常要对传递参数进行校验1.PathVariable校验@GetMapping("/path/{group:[a-zA-Z0-9_]+}/{userid}")@ResponseBodypublic String path(@PathVariable("group") String group, @PathVariable("userid") Integer userid) { return group + ":" + userid;}用法是:路径变量:正则表达式。当
转载
发布博客 2021.05.16 ·
253 阅读 ·
0 点赞 ·
0 评论

mybatis在xml中直接使用枚举

业务背景:在我们业务场景中有时就会出现在mybatis的xml文件中使用枚举值,是因为有些值不想写死想集中统一管理。枚举类:package com.test.constant; public enum AnimalEnum { DOG("dog"), CAT("cat"), private String type; AnimalEnum(String type) { this.type= type; } public
原创
发布博客 2021.05.16 ·
1340 阅读 ·
0 点赞 ·
0 评论

对http重复发起请求

最近在做项目中遇到一个例子比较值得记录下来,业务场景:对请求AI接口请求过程中尝试请求三次以上。和如何对http服务发起请求目录1.发起Http请求1.1 发送Get请求:1.2 发起Post请求:2.重复发起请求2.1 利用for循环2.2 利用spring-retry方式1.发起Http请求 会用到hutool工具1.1 发送Get请求: aiEvents = HttpUtil.get("http://172.19.2.2:8002/ai/data_report/clue_report?o
原创
发布博客 2021.05.16 ·
396 阅读 ·
0 点赞 ·
2 评论

对Java中intern()方法的理解

先看源码API的解释:来看例子: String str1 = "todo"; String str2 = "todo"; String str3 = "to"; String str4 = "do"; String str5 = str3 + str4; String str6 = new String(str1); System.out.println("------普通String测试结果----
原创
发布博客 2021.05.03 ·
151 阅读 ·
0 点赞 ·
1 评论

什么时候用!=null?

我们在程序中经常在代码中会使用!=null,为了避免程序返回空指针异常,但是这样的代码会显得丑陋繁冗!1.使用null的意义:往往我们判断某个返回是不是为空的时候,应该思考两种情况:(1):第一种null是一个有效有意义的返回值(2):第二种null是无效有误的,毫无意义的。2.第二种情况:null就是一个不合理的参数,就应该明确地中断程序,往外抛错误。这种情况常见于api方法。例如你开发了一个接口,id是一个必选的参数,如果调用方没传这个参数给你,当然不行。你要感知到这个情况,告诉调用.
原创
发布博客 2021.04.24 ·
251 阅读 ·
0 点赞 ·
0 评论

锁

共享锁(S锁):又称为读锁,可以查看但无法修改和删除的一种数据锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排它锁。获准共享锁的事务只能读数据,不能修改数据。共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享.排它锁(X锁):又称为写锁、独占锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A互斥锁:在编程中,引入了对象互斥锁
原创
发布博客 2021.04.18 ·
15 阅读 ·
0 点赞 ·
0 评论

mybatis分页造成total遇到过的问题

之前在做springBoot+mybatis的时候,遇到分页的问题一直困扰我最后还是别人解答出来告诉我的,先开始分页查询,然后查询出来之后我又循环组织数据添加到另一个List去然后开始返回。这里就破坏了原来分页查询出来的分页参数。我找到两种解决办法:1. 第一种解决办法public PageInfo<UserFromVO> listUser(User user, CommonQo commonQo) { //开始分页 PageHelper.startPage(comm
原创
发布博客 2021.04.18 ·
291 阅读 ·
0 点赞 ·
0 评论

mybatis传递参数的用法

本人也是工作之中总结的,写此博客总结。#{}跟${}区别首先#{}跟${}的区别我相信大家也心里知道什么意思网上一搜一大把的关于这方面知识。就我平时用到而言:#{}用的比较普遍(基本上用的都是这个),传入的参数会默认带有“”,而${}也能传入参数只不过说的是会造成SQL注入,什么是SQL注入: 就这样跟你讲吧就是#{}是针对具体的某个参数,而后者是原样输出。当然我有点总结不对反正就是个别场景用不同的,普通带参数查找就是#{}。而有的时候SQL需要比如in(),这个时候就需要后者了。如果用前者那么就是
原创
发布博客 2021.04.18 ·
97 阅读 ·
0 点赞 ·
1 评论

java比较时间大小

我们做一些业务开发的时候,经常会遇到关于日期的条件的判断,我举个例子:在一次列表中会有一次对日期的筛选,这时如果用户选择时间2021-4-5~2021-4-4 这种格式的。这时我们就应该给他提示开始时间不能大于结束时间,这种就是逻辑错误!我在网上找了一些资料:1.before英文翻译就是 在xxx之前 意思就是前面的参数小后面参数大 那就是true格式: xx.before(xx)可以理解为以括号里的日期为准,表示以它之前的日期来比较2.after表示在xxx之后,前面大后面小 那就是tr
原创
发布博客 2021.04.05 ·
1387 阅读 ·
0 点赞 ·
0 评论

SQL日期时间整理

因为经常在MySQL中遇到关于日期时间的问题经常不知道如何选择,今天就整理一下关于SQL日期的一些函数使用,遇到我没记录的我会更新的,所以请关注我吧!目录1.返回当前日期和时间1.1curdate()函数1.2 curtime()函数1.3 Now()函数1.4sysdate()函数 返回系统时间2.计算两个日期之间的相差天数3.获取日期其中部分3.1 day() 函数3.2 last_day()函数3.3 year()函数3.4 extract函数3.5 month()函数4.日期相加相减4.1 dat
原创
发布博客 2021.03.26 ·
136 阅读 ·
0 点赞 ·
1 评论

MYSQL中where条件后写上1=1 是什么意思?

我们在实际的开发项目中经常会出现条件语句,但有些条件不是必须要传的而是可选的。就比如项目中出现模糊搜索,那么此时在mysql就会出现判断是否传值。来。直接看代码:例如String sql="select * from table_name where 1=1";if( conditon 1) { sql=sql+" and var2=value2";}if(conditon 2) { sql=sql+" and var3=value3";}这里的if是Java提供演示w
原创
发布博客 2021.03.25 ·
1037 阅读 ·
0 点赞 ·
2 评论

23 种设计模式的通俗解释,虽然有点污,但是秒懂

工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。建造者模式MM 最爱听的就是「我爱你」这句话了,见到不同地方的 MM,要能够用她们的方言跟她说这句
转载
发布博客 2021.03.21 ·
59 阅读 ·
0 点赞 ·
0 评论

斗鱼面试官:Thread.sleep(0) 到底有什么用?

我们可能经常会用到 Thread.Sleep 函数来吧使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?我们先回顾一下操作系统原理。操作系统中
原创
发布博客 2021.03.13 ·
37 阅读 ·
0 点赞 ·
0 评论

请谨慎使用Arrays.asList、ArrayList的subList

1. 使用Arrays.asList的注意事项1.1 可能会踩的坑先来看下Arrays.asList的使用:List<Integer> statusList = Arrays.asList(1, 2);System.out.println(statusList);System.out.println(statusList.contains(1));System.out.println(statusList.contains(3));输出结果如下图所示:然后,往statusLi
原创
发布博客 2021.03.13 ·
20 阅读 ·
0 点赞 ·
0 评论

计算机基础进制转换(二进制、八进制、十进制、十六进制)

1.十进制转N进制1.1 十进制转二进制1.1.2 十进制整数转二进制十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。例题: 135D = ______ B**解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.1.1.3 十进制小数转二进制十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分
原创
发布博客 2021.03.07 ·
602 阅读 ·
0 点赞 ·
0 评论

String、StringBuffer、StringBuilder, StringJoiner 的区别

一、Java String 类——String字符串常量字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:我们可以看到,初始String值为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重新在栈堆内
原创
发布博客 2021.03.07 ·
141 阅读 ·
0 点赞 ·
1 评论

卧槽!时间插入 MySQL 数据库,结果竟然少了 8 小时~

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有:EST -
原创
发布博客 2021.03.07 ·
155 阅读 ·
0 点赞 ·
0 评论

delete后加 limit是个好习惯么

在业务场景要求高的数据库中,对于单条删除和更新操作,在delete和update后面加limit 1绝对是个好习惯。比如,在删除执行中,第一条就命中了删除行,如果SQL中有limit 1;这时就return了,否则还会执行完全表扫描才return。效率不言而喻。那么,在日常执行delete时,我们是否需要养成加 limit 的习惯呢?是不是一个好习惯呢?在日常的SQL编写中,你写delete语句时是否用到过以下SQL?delete from t where sex = 1 limit 100;
原创
发布博客 2021.03.07 ·
39 阅读 ·
0 点赞 ·
0 评论

@Autowire和@Resource注解使用的正确姿势,别再用错的了!!

介绍今天使用Idea写代码的时候,看到之前的项目中显示有warning的提示,去看了下,是如下代码?@Autowireprivate JdbcTemplate jdbcTemplate;提示的警告信息Field injection is not recommended Inspection info: Spring Teamrecommends: “Always use constructor based dependency injection in yourbeans. Always
原创
发布博客 2021.02.24 ·
41 阅读 ·
0 点赞 ·
0 评论
加载更多