自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 SQLRecoverableException异常

我遇到的是请求并发造成的,两个并发请求执行方法,方法未执行完成整体事务未提交导致事务占用,另一个请求执行更新操作时事务被占用超过10秒。

2024-05-08 10:21:00 96

原创 git error index file corrupt

错误提示:场景复现:在使用git add .提交代码到缓冲区时电脑宕机,重启后再次提交代码会出现该提示原因分析:.git目录下的index文件损坏。

2024-05-07 10:16:58 255

原创 Java中String的length为什么与ORA-12899异常中实际值大小不一致

例如,在使用UTF-8编码时,一个英文字符通常占用1个字节,而一个汉字可能占用3个字节。例如,英文字符通常只占用1个字节,而汉字在GBK编码下占用2个字节,在UTF8编码下则占用3个字节。这是因为Oracle数据库判断字段插入是否超长是以字节来判断的,而String类length方法获取的是存储的字符数量,顺便提一下Oracle数据库length方法获取的也是存储的字符数量。,则表示可以存储最多100个字符,而不是字节,这时可以存储的汉字数量将取决于实际字符所占用的字节数。的最大长度是4000字节。

2024-04-11 17:56:51 197

原创 Async坑:Null return value from advice does not match primitive return type

http://t.csdnimg.cn/1Eoeg

2024-04-09 10:49:25 369

原创 注解Asynchrony 使用时注意在SpringBoot 同类中非异步方法里面调用异步方法不会生效

在Spring Boot中,如果你在一个类的非异步方法中调用同一个类中的异步方法,那么通常情况下,这个异步调用不会生效。原因在于,Spring的@Async注解的异步调用是基于代理实现的。当你在一个类的方法上使用@Async注解时,Spring会为这个类创建一个代理,并将@Async注解的方法调用代理化。这意味着,当你从类的外部(即通过代理对象)调用这个方法时,它会被异步执行。

2024-03-07 14:32:34 1023

原创 Oracle统计多字段分组后的分组数量

select count(count(1)) from table group by a,b

2024-02-28 16:41:20 416

原创 Oracle group by分组时写count和不写count性能有区別吗

总的来说,写COUNT会增加数据库的处理负担,因为它需要进行额外的计数操作。而不写COUNT可能会提高查询效率,因为它减少了数据处理的需求。然而,这种性能差异的实际影响取决于具体的数据集大小、数据库的配置以及系统的负载情况。在实际应用中,建议根据具体的查询需求和性能测试结果来决定是否使用COUNT函数。在Oracle中,使用GROUP BY分组时写COUNT与不写COUNT在性能上确实存在区别。

2024-02-21 14:30:00 433

原创 Mybatis的一些问答记录

不过遗憾的是,HashMap是无序的,也就是说,迭代HashMap所得到的元素顺序并不是它们最初放置到HashMap的顺序。因此,根据链表中元素的顺序可以将LinkedHashMap分为:保持插入顺序的LinkedHashMap 和保持访问顺序的LinkedHashMap,其中LinkedHashMap的默认实现是按插入顺序排序的。BaseExecutor基础抽象执行器是三个具体执行器共性功能(一级缓存维护、事务管理)的抽象集合(竖向扩展),主要是MyBatis关于一级缓存相关的逻辑。为什么要进行序列化?

2024-01-13 16:15:27 943

原创 mybatis中执行报ORA-01790

mybatis中执行报ORA-01790,但在plsql里面执行没问题。检查jdbctype 是否正确。

2023-12-21 11:15:33 440

原创 Date与LocalDate互转

【代码】Date与LocalDate互转。

2023-12-07 23:08:33 800

原创 Mybatis异常拆包工具类ExceptionUtil——非常容易也值得我们借鉴

两个类都位于java.lang.reflect包下显示是用来处理反射相关的异常的。可在代理类中难免会在执行某些方法时抛出一些共同接口或者父类方法中没有声明的必检异常,那么我们就可以将其统一包装为 UndeclaredThrowableException进行管理,针对于这两种场景我们可以在处理反射的时候统一包装为InvocationTargetException进行管理,同样的我们可以直接拿来在项目中使用,也可以加以改造针对自己公司框架不同业务异常类型提示信息处理时用。那么这里拆包的时候为什么会用到。

2023-11-28 00:07:20 128

原创 MetaObject-BeanWrapper-MetaClass-Reflector的关系

MetaObject、BeanWrapper、MetaClass、Reflector之间是通过装饰器模式逐层进行装饰的。其中MetaObject、BeanWrapper是操作对象;MetaClass、Reflector是操作Class。BaseWrapper是对BeanWrapper、MapWrapper公共方法的提取及类图的优化,内部是对MetaObject的装饰。ObjectWrapper类结构图。

2023-11-26 22:51:42 280

原创 Mybatis反射核心类Reflector

Reflector类负责对一个类进行反射解析,并将解析后的结果在属性中存储起来。一个类反射解析后都有哪些属性呢?我们可以通过Reflector类定义的属性来查看。该类里面还有一个值的注意的小工具类可以直接拿来使用,生成方法签名。

2023-11-26 18:00:23 117

原创 Mybatis反射工厂类DefaultReflectorFactory

DefaultReflectorFactory是反射工厂接口ReflectorFactory的默认实现,其主要是实现了对反射对象Reflector的创建和缓存。其缓存功能主要是通过ConcurrentMap实现的,ConcurrentHashMap是一个线程安全,并且是一个高效的HashMap。

2023-11-26 17:15:39 293

原创 PropertyTokenizer属性解析器实现,So Easy

实现原理:每次解析都会产生一个新的解析对象直至无法解析,通过构造方法充当解析方法以及实现Iterator迭代器接口。1)定义拆分后的属性字段(其中indexedName = name[ index ])3)怎么判断是否解析终结?实现Iterator迭代器接口。4)对于不需的功能,异常抛出remove()方法。2)定义解析方法,构造方法实现。

2023-11-25 11:19:17 39

原创 Mybatis中的PropertyNamer

PropertyNamer提供属性名称相关的操作,该类主要是校验对象属性、方法的命名是否遵循JavaBean的命名规范。

2023-11-25 10:46:46 34

原创 Mybatis中的PropertyCopier属性复制器

PropertyCopier属性复制器位于MyBatis中reflection包下子包property属性子包,其作用就是将一个对象的属性复制到另一个对象中。getDeclaredFields方法无法获取继承父类的字段属性。禁止改动的类定义为final类型,私有化构造方法提供静态方法。

2023-11-25 10:34:33 44

原创 Mybatis中reflection包下的执行器子包

GetFieldInvoker、SetFieldInvoker、MethodInvoker都是通过有参构造将传入的对象包装成相应的操作对象。reflection包下的invoker子包是执行器子包,该子包中的类是基于反射实现对对象方法的调用和属性的读写。GetFieldInvoker:负责对象属性的读操作;SetFieldInvoker:负责对象属性的写操作;MethodInvoker:负责对象方法的调用。注意这里其实使用到了。

2023-11-19 22:21:05 21

原创 Mybatis-reflection包下的对象工厂子包

DefaultObjectFactory中的resolveInterface方法主要是解决当传入的目标类型是一个常见的接口(List、Map、Set、Collection等)时,给出一个符合该接口的默认实现类。DefaultObjectFactory的create方法用来生产对象,其最终都是通过instantiateClass方法基于反射来生产一个对象。reflection包下的factory包是一个对象工厂子包,该包中的类用来基于反射生产出各种对象。

2023-11-19 17:18:47 21

原创 Mybatis异常类体系

一个类实现了Serializable接口,但是在序列化后,对类的结构进行了修改,那么反序列化时就会出现版本不一致的问题。而如果不实现Serializable接口,而是手动指定serialVersionUID的值,那么即使类的结构发生了变化,只要serialVersionUID的值不变,就可以保证序列化和反序列化的正确性。4、值得注意的一点是mybatis作为一个开源持久层框架势必会与其他框架进行整合,考虑到这一点mybatis将作为外围体系类的异常类均手动指定了serialVersionUID属性值。

2023-11-19 10:59:28 57

原创 Mybatis源码泛型解析器TypeParameterResolver

【代码】Mybatis源码泛型解析器TypeParameterResolver。

2023-11-18 18:42:47 49

原创 @Import注解适用场景

前端

2023-01-03 15:52:44 121 1

原创 axios TypeError: Cannot set property ‘xxxx‘ of undefined 的解决办法

前端

2022-12-31 08:00:42 320

原创 ruoyi-vue——登录流程

ruoyi登录流程

2022-07-31 22:49:42 2142

原创 ruoyi-vue搭建

ruoyi-vue前后端分离快速搭建

2022-07-30 16:50:55 333

原创 SpringBoot实现定时任务

1、引包pom 包里面只需要引入 Spring Boot Starter 包即可<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency></dependencies>2、创建定时任务@Co

2021-06-07 23:36:33 295

原创 SpringBoot整合MyBatis

SpringBoot组件starter命名规则:SpringBoot官方的Starter: spring-boot-starter-*第三方Starter: *-spring-boot-starter1、引入依赖<!--引入mybatis--><dependency> <groupId>org.mybatis.spring.boot</groupId> <ar

2021-05-23 00:37:47 201

原创 SpringBoot整合Thymeleaf模版

1、Thymeleaf简介SpringBoot推荐使用Thymeleaf替代Jsp。Tymeleaf是一款用于渲染XML/XHTML/HTML5内容的模版引擎,Tymeleaf最大的特点是能够直接在浏览器中打开并正确显示模版页面,而不需要启动整个Web应用。Tymeleaf使用了自然的模版技术,其模版语法并不会破坏文档的结构,Tymeleaf会在运行期替换掉静态值,模版依旧是有效的XML文档。下面的代码示例分别使用 Velocity、FreeMarker 与 Thymeleaf 打印出一条消息:Vel

2021-05-15 23:33:02 93

原创 SpringBoot(二)Web综合开发

1、Web开发Web开发过程常常会包含接口开发json输出、filters、property、log、整合页面、操作数据库等。2、json接口开发Spring开发项目,提供json接口时需要做的配置:1)添加jackjson等相关jar包2)配置Spring Controller扫描3)对接的方法添加@ResponseBody相比之下,SpringBoot就要简单多了,只需要类添加@RestController即可,默认类中的方法都会以json的格式返回@RestControllerpu

2021-05-14 22:25:27 101

原创 SpringBoot常用注解

@RestController:类上添加该注解,默认类中的方法都会以json格式返回。@RequestMapping:该注解为方法请求路径@ResponseBody:该注解规定方法返回体格式为json@Configuration@Component:@Autowired:自动装配注解@Value注解注入value值...

2021-05-14 22:25:19 57

原创 SpringBoot(一)简单搭建

一、Idea构建项目1、创建一个新项目2、选择Spring Initializr,Next也会出现上述类似的配置界面,Idea帮我们做了集成3、填写相关内容后,点击Next选择需要的依赖模块包也可暂时直接跳过,Finish。4、至此一个简单的SpringBoot项目就已经搭建完成启动Application main 方法即可2、项目结构介绍1、SpringBoot建议的目录结构如下:pom.xml文件中默认有两个模块1)spring-boot-starter:核心模块,包括自动配置

2021-05-12 23:18:52 85

原创 MyBatis二级缓存出现的原因

既然有了一级缓存,那么为什么要提供二级缓存呢?1、在一级缓存中,不同session进行相同SQL查询的时候,是查询两次数据库的。显然这是一种浪费,既然SQL查询相同,就没有必要再次查询数据库了,直接利用缓存数据即可,这种思想就是MyBatis二级缓存的初衷。2、Spring和MyBatis整合时,每次查询之后都要进行关闭sqlsession,关闭之后数据被清空。所以MyBatis和Spring整合之后,一级缓存是没有意义的。如果开启二级缓存,关闭sqlsession后,会把该sqlsession一级缓存

2021-04-26 22:24:00 538

原创 MyBati二级缓存LruCache组件为什么会采用LinkHashMap实现呢?

HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap是无序的,也就是说,迭代HashMap所得到的元素顺序并不是它们最初放置到HashMap的顺序。HashMap的这一缺点往往会造成诸多不便,因为在有些场景中,我们确需要用到一个可以保持插入顺序的Map。庆幸的是,JDK为我们解决了这个问题,它为HashMap提供了一个子类 —— LinkedHashMap。虽然LinkedHashMap增加了时间和空

2021-04-24 23:22:04 164

原创 内部类系列-静态内部类

1、静态内部类是定义在外部类的成员位置,并且有static修饰2、可以直接访问外部类的所有成员,包括私有的,但不能直接访问非静态成员3、可以添加任意访问修饰符(public,protected、默认、private),因为它的地位就是一个成员4、作用域:同其他成员,为整个类体5、静态内类—访问—外部类(访问方式:直接访问所有静态成员,不能访问非静态成员)6、外部类—访问—静态内部类(访问方式:创建对象,再方式)7、外部其他类—访问—静态内部类(访问方式见代码)8、若外部类和静态内部类的成员重.

2021-03-13 21:39:34 978

原创 内部类系列-成员内部类

1、成员内部类定义在外部类成员位置,并且没有static修饰。2、成员内部类可以直接访问外部类的所有成员,包括私有的。3、可以添加任意访问修饰符(public,protected,默认,private),因为其地位就是一个成员。4、作用域:同外部类的其他成员为整个类体。5、成员内部类----访问----外部类(访问方式:直接访问)6、外部类----访问-----内部类(访问方式:创建对象,再访问)7、外部其他类----访问----成员内部类,方式1:作为外部类成员直接访问,但其本质又是一个类故.

2021-03-13 19:50:56 144

原创 内部类系列-匿名内部类

2》匿名内部类匿名内部类定义在外部类的局部位置,没有类名匿名内部类语法new 类或接口(参数列表){ 类体};public class AnonymousInnerClass { public static void main(String[] args) { Outer outer = new Outer(); outer.outer_method1(); }}class Outer{ private int outer_

2021-03-13 18:17:32 121

原创 内部类系列-局部内部类

1》局部内部类局部内部类是定义在外部类的局部位置,比如方法、代码块中,并且有类名。可以直接访问外部类的所有成员,包括私有的。不能添加访问修饰符,因为其地位就是一个局部变量。局部变量是不能使用修饰符的。但是可以使用final修饰,因为局部变量也可以使用final作用域:仅仅在定义它的方法或代码块中局部内部类本质上仍是一个类外部其他类不能访问局部内部类(因为其作用域是在定义它的局部内)作用域外不允许访问内部类若外部类与局部内部类的成员重名时,遵循就近原则。若想访问外部类的成员,则可以使用(外部

2021-03-13 16:33:41 270

原创 内部类系列1(JAVA基础)

看韩顺平java基础笔记整理。概念一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。内部类是类的五大成员(属性、方法、构造器、代码块、内部类)之一。特点内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。基本语法class Outer{//外部类 class Inner{//内部类 }}class OtherOuter{//外部其他类}分类1》定义在外部类局部

2021-03-13 15:17:09 81

原创 IDEA系列3-模板(templates)

1、代码块模板File -> Setting -> Editor -> Live Templates查看有哪些SQL模板自定义模板序号1:在当前组自定义模板序号2:自定义模板组1》当前组自定义模板2》设置自定义模板应用范围2、文件模板File -> Setting -> Editor -> File and Code Templates...

2021-03-13 13:47:59 164

原创 IDEA系列2-常用快捷键(Keymap)

补全代码 alt + /添加注释和取消注释 ctrl + /

2021-03-13 12:58:03 612

weblogic安装手册

weblogic安装手册

2024-01-13

力扣刷题笔记总结记录666

力扣刷题笔记总结记录666

2024-01-13

Linux命令行中文版

Linux命令行中文版

2024-01-13

iReport各种版本

iReport各种版本

2024-01-13

svn服务端的搭建步骤及资源

svn服务端的搭建步骤及资源

2024-01-13

数据结构与计算机组成原理

数据结构与计算机组成原理

2024-01-13

空空如也

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

TA关注的人

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