自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Owen Guo

脚踏实地的走好每一步

  • 博客(122)
  • 收藏
  • 关注

原创 Failed to connect to github.com port 443 after 21055 ms: Timed out

设置 -> 网络和Internet -> 代理 -> 编辑。还是会报这样的错误,连接不到的github。是因为这个请求没有走代理。

2023-12-06 17:07:02 1016 2

原创 使用Java8的Stream流的Collectors.toMap来生成Map结构

在日常开发中总会有这样的代码,将一个List转为Map集合,使用其中的某个属性为key,某个属性为value。

2023-12-06 16:33:20 810

原创 java.lang.UnsupportedOperationException解决方法

在实际开发中经常会有类似的这种代码,想要按类的某一个属性对列表中的元素分组。例如:有一些学生,然后根绝他们的年龄对他们进行分组。可以写出如下代码。运行结果:这是为什么呢?

2023-12-06 15:53:16 683

原创 IDEA快捷键记录

项目全局替换: Ctrl + Shift + R。项目全局查找: Ctrl + Shift + F。当前文件下替换:Ctrl + R。当前文件下查找:Ctrl + F。

2023-10-20 17:48:43 116

原创 Linux下>和>>的区别

两个都是将内容输入到指定文件中,文件不存在则创建。

2023-10-20 17:12:48 189

原创 Linux查看日志文件的常用命令

4、按照关键字搜索并包含前(后)多少行 【(A前B后C前后)几行】2、实时查看文件最后1000行内容,动态刷新。5、将查询到的内容重定向到指定文件。# 通过less命令查看文件内容。1、查看文件最后1000行内容。7、查询指定时间段的日志。3、按照关键字搜索日志。6、查看执行时间的日志。

2023-10-20 17:07:18 1721

原创 一篇文章搞懂Redis缓存

我们都知道在计算机中内存的速度比磁盘要快非常多,如果每次都要去磁盘获取数据,是不是每次的速度都很慢。如果有一个数据是我们要经常使用的,如果每次都从磁盘获取数据,那速度是每次都是那么慢。所以就想到是不是可以把数据放到内存中,这样在第一次获取之后将数据存放在内存中,这样速度就快很多。现在的计算机世界中到处都用到了缓存技术。

2023-09-03 17:41:24 263

原创 对于库存扣减问题的一些思考

最近在做公司WMS库存模块的需求,所以网上查阅了一些库存扣减相关的文章学习了一下。

2023-08-27 16:59:08 567

原创 Java返回一个数值的相反数的几种方式.

【代码】Java返回一个数值的相反数的几种方式.

2023-08-27 16:23:18 792

原创 JDBC 批处理 executeBatch返回值含义

如果批量更新中的命令之一无法正确执行,此方法引发BatchUpdateException,JDBC driver可能会也可能不会继续处理剩余的命令。但是driver的行为是与特定的DBMS绑定的,要么总是继续处理命令,要么从不继续处理命令。返回-2 表示命令为处理成功,但受影响的行数为未知。因为insert是将多条sql合成一条sql来执行的,所以影响的数据行数是未知的。返回0表示没有受影响的记录,可能是where条件导致没有查询到对应的数据。返回大于等于1的值,表示更新成功,返回受影响的行数。

2023-08-27 16:13:28 799

原创 explain各个字段代表的意思

上面就是type列可能会出现的10个字段,越靠左效率越高。

2023-08-27 15:07:53 813

原创 Mysql| limit限制结果范围(limit,offset )

如果是只取前几条数据,limit可以省略不写,只写offset即可。// 返回从第0条记录开始,后面的10条数据。// 返回从1条记录开始,后面的10条数据。offset表示返回的数据数量(条数)limit 表示数据的其实位置,// 获取前20条记录。

2023-08-27 14:30:12 1363

原创 Java8中的Optional的orElse、orElseGet和orElseThrow的使用

我们可以看到使用Optioan的orElse明显少些了许多代码,减少了空指针的发生。

2023-08-27 14:16:55 1963

原创 在Java8的forEach()中使用break/continue

因为forEach()执行的是一个lambda表达式,本质就是一个函数,就是让列表中的每一个元素来执行这个函数。今天在开发中,使用forEach()来遍历元素执行业务操作,发现如果判断不符合某个条件时就要。,不能继续向后执行了。但是在forEach()中不能使用for循环中的。的输出结果是一样的,但其实它们之间是有非常本质的区别的。将当前函数返回,下一个元素继续执行这个函数。所以看起来在forEach()中使用。

2023-08-27 13:48:06 633

原创 MySQL insert 如何避免重复插入

这里已经存在name='Jack’的数据,所以会忽略掉新插入的数据,受影响行数为0,表数据不变。发生冲突/重复,则忽略此次操作/不插入数据。语法,如果插入的数据会导致。

2023-08-20 10:58:45 347

原创 sql update执行返回0,能否判断数据不存在

例如:更新前的数据name=张三,我们使用update将name还是改为张三,这里返回的结果依然是0。是因为mybatis这个第三方持久化框架返回来的是被匹配的影响行数,所以执行多次都不会返回0。更新时如果没有找到数据返回0,找到数据就不会返回0了,无论数据是否一致,都不会返回0。例如:where后面的条件是id=0,那这条记录肯定是不存在的,返回结果是0。如果想要以返回的行数作为判断结果,则jdbc连接就要增加。

2023-08-19 19:42:42 1376

原创 在抽象类中使用@Autowired注入其他bean

其实没有什么关系,只要实现类继承这个抽象方法,然后加入IOC容器,红色警告就会消失了。今天写代码时,使用模板设计模式,需要在抽象类中使用。注入指定的Bean,然后调用指定方法。

2023-08-19 18:17:51 1163 2

原创 Java两整数相除向上取整

【代码】Java两整数相除向上取整。

2023-08-19 18:08:30 1489

原创 Java方法的参数可以有默认值吗?

所以就想Java的方法可以有非必填这种操作吗?网上搜了一下,发现不支持这种操作。可以通过方法重载的方式来变相实现。不需要传这个参数就会调用没有这个参数的方法。如果需要非没有的参数设置一个默认值的话,可以在代码种进行设置值。在日常web开发这种,controller层接受参数时可以通过。

2023-08-19 17:59:55 1626

原创 关于update时要先判断记录是否存在,不存在则需要先insert的方案

可以先查询,把数据补充出来,然后再update。这种是要根据一定的业务场景来判断的,不是所有的业务场景都可以使用。

2023-08-19 17:53:12 540

原创 @Transactional self-invocation (in effect, a method within the target object calling another method

方法下有黄色的波浪线,将鼠标放上去提示开始的信息。方法事务是不会生效的。因为这次调用并不是通过代理对象来实现的。Spring的事务是通过AOP来实现的,只有通过代理对象调用。注解的对象方法时,事务才会生效,也就是直接调用。方法重新写到一个类中,然后在。写完这个代码之后,可以看到。方法事务才会生效,调用。

2023-08-19 12:13:01 14565

原创 聊聊@Accessors和@Builder

从上面的代码我们看到new User()后面可以链式调用set方法赋值。这是因为@Accessors(chain=true)将lombok生成的setter方法返回值变为了this,也就是返回了对象本身,代替了原本的void。

2023-08-19 11:36:25 482

原创 详解拦截器和过滤器

自定义拦截器其实就是实现Filter接口,然后实现他的方法。那它的方法都有什么作用呢?1)init方法在Web容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。注意:这个方法必须执行成功,否则过滤器会不起作用。2)doFilter方法容器中的每一次请求都会调用该方法一次请求会调用两次,进Web容器时调用一次,出Web容器时调用一次要使用来调用下一个过滤器,否则这个请求就到此结束了。3)destroy方法。

2023-08-13 19:09:41 1087

原创 一篇文章搞懂如何使用JDBC操作数据库,还有JDBC进阶操作

JDBC是Java DataBase Connectivity的缩写。它是让Java程序连接数据的接口。Java程序要连接数据库,必然是需要通过网络连接,和数据库商制定协议来实现连接的。所以Java推出了JDBC这一套连接数据库的空接口,然后不同的数据库厂商来根据JDBC来实现连接自己数据库的驱动。对于Java来说连接数据库只需要操作JDBC接口即可,需要连接哪个厂商的数据库就导入哪个厂商的驱动程序。

2023-08-12 22:37:27 531

原创 SpringBoot启动报错:java: 无法访问org.springframework.boot.SpringApplication

解决方案:将SpringBoot版本降到2系列版本(例如2.5.4)。报错原因:jdk 1.8版本与SpringBoot 3.1.2版本不匹配。修改版本后切记刷新Meavn依赖。然后重新启动即可成功。

2023-08-11 17:24:33 1630

原创 MySQL中bigint(20)中的20代表含义

这个20可以理解为数据宽度,不是取值范围。

2023-08-10 20:20:59 1798

原创 IDEA新建类时自动设置类注释信息,署名和日期

IDEA新建类时如何自动设置类注释信息,自动设置署名和时间等信息

2023-08-10 17:31:32 1117

原创 为什么要实现Serializable

我们看阿里巴巴开发手册中此规范被标识为【强制】1、那这个是个什么东西呢?从字面意思就发现是序列化版本id,就是这个对象序列化时的版本号,在我们实现serialVersionUID的时候虽然我们没有明确指定是多少,但是Java底层帮我们默认生成了一个随机数。2、serialVersionUID不一致会怎么样不一致就不能进行反序列化,只有反序列化的对象和二进制流的serialVersionUID是一致的才能反序列化。

2023-08-08 14:28:21 256

原创 编程手记【2023-6-25-2023-6-30】

参考此文:https://blog.csdn.net/sinat_36645384/article/details/123672082。

2023-07-01 19:28:14 606

原创 永不磨灭的设计模式(23种设计模式全集)

本篇为设计模式的汇总,详细的讲解可以点击对应的连接来学习。后续我将会继续完善这些文章,将自己在工作中的体会输出到专栏中本篇为设计模式的汇总,详细的讲解可以点击对应的连接来学习。后续我将会继续完善这些文章,将自己在工作中的体会输出到专栏中。

2023-06-05 17:52:00 1466 2

原创 设计模式-责任链模式

1)职责链模式(Chain of Responsibility Pattern)又叫责任链模式,为请求创建一个接收者对象的链。这种模式对请求的发送者和接收者进行耦合。2)职责链模式通常每个接受者都包含另一个对象接收者的引用。如果一个对象不能处理该请求,那么他会把相同的请求传给下一个接收者,依次类推。3)这种类型的设计模式属于行为模式。

2023-06-04 11:15:57 611

原创 设计模式-策略模式

1)策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户(就是对我们的鸭子的行为单独拿出来做一个接口,然后实现不同的行为,例如将飞行这种行为拿出来作为接口,然后再继承这个接口实现会飞,飞的不好,不会飞这三种形式,不同的鸭子传入不同的形式就可以了)2)这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)

2023-06-03 22:29:50 968

原创 设计模式-备忘录模式

1)备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存状态。2)可以这样理解备忘录模式:现实生活中备忘录是用来记录有些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作3)备忘录模式属于行为模式。

2023-06-03 20:00:09 956

原创 设计模式-解释器模式

就是我们给一个特定的规则,然后我们来解释使用这个规则的输入,最终得到一个结果解释器模式就是给了我们一个框架,按照这个框架我们就能开发一个解释器。

2023-06-03 18:24:08 867

原创 设计模式-中介者模式

1)中介者模式(Mediator Pattern),用一个中介对象来封装一系列对象交互。中介者使各个对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间地交互2)中介者模式属于行为型模式,使代码易于维护。

2023-06-03 15:22:11 456

原创 设计模式-观察者模式

气象站每天会实时观察天气数据,然后将这些数据推送到企业,企业可以自行处理这些数据然后进行展示。1)气象站可以将自己的数据公布出去2)数据可能会经常更新,企业能实时收到数据3)需要设计开放型API,便于其他第三方也能接入气象站获取数据。

2023-06-01 23:13:07 302

原创 设计模式-迭代器模式

在容器类中,我们把迭代器分开,就是要把管理对象集合和遍历对象集合的责任分开,这样一来集合改变的话,只影响到容器对象。3)使用数据的时候我们就要对这些容器进行遍历,不同的数据结构有不同的遍历方法,甚至相同的数据结构会有多种遍历方法,例如树我们有前序遍历、中序遍历和后续遍历等。6)迭代器模式,提供一种遍历容器元素的同一接口,用一致的方法遍历容器元素,不需要知道容器的底层表示,即:不暴露内部结构。4)在编写这个容器的时候我们没有必要把这些遍历方法都写到容器中,这样就模糊了容器的主要功能,容器是用来存储数据的。

2023-06-01 22:39:06 581

原创 设计模式-命令模式

1)命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道彼请求的操作是哪个我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计2)命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。3)在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。4)通俗易懂的理解,将军发布命令,士兵去执行。

2023-06-01 16:34:22 490

原创 设计模式-访问者模式

1)访问者模式:在结构不变的情况下,可以动态改变内部元素的动作。例如上面的问题,结构不变的情况下,我们可以动态升级操作系统2)主要将数据结构和数据操作分离,解决数据结构和操作耦合性问题。3)访问者模式的基本工作原理是:在被访问的类里面加一个对外提供的接受访问者的类,然后被访问这将自己交给访问者类,这样访问者类就可以控制被访问者类4)访问者模式主要应用场景:需要对一个对象结构中的对象进行很多不同操作 (这些操作彼此没有关联),同时需要避免让这些操作“污染”这些对象的类,可以选用访问者模式解决。

2023-06-01 15:35:57 598

原创 设计模式-代理模式

代理模式是一种常用的设计模式,它通过为一个对象提供一个代理对象来控制对原对象的访问。在Java语言中,代理模式主要有三种实现方式:静态代理、动态代理和Cglib代理。

2023-05-30 22:50:10 109

mysql-connector-java-8.0.20.jar

mysql8.0版本的Java连接驱动城区,mysql-connector-java-8.0.20.jar

2023-08-13

javax.servlet-api-4.0.1.jar

servlet的jar包

2023-08-13

阿里巴巴泰山版java开发手册

阿里巴巴泰山版java开发手册

2023-08-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除