<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oak_javaLearner的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oak_javaLearner</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oak_javaLearner]]></copyright><item><title><![CDATA[Git删除中间的某几次连续提交]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/159209110</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/159209110</guid><author>oak_javaLearner</author><pubDate>Wed, 18 Mar 2026 16:25:13 +0800</pubDate><description><![CDATA[场景：A先提交了几次代码，B随后提交了几次代码，此时A想要把自己提交的代码撤回，且保留B的代码，需要怎么做？1.使用此命令撤销某几次提交的代码时，会将base版本之后（不包含），指定版本之前（包含）的提交全部跳过。2.如果B提交的代码是基于A提交之后修改的，执行完rebase命令之后会出现冲突，需要手动合并。]]></description><category></category></item><item><title><![CDATA[jdbcTemplate执行sql后数据库字段没有更新问题解决]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/154439382</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/154439382</guid><author>oak_javaLearner</author><pubDate>Wed, 05 Nov 2025 13:58:09 +0800</pubDate><description><![CDATA[postgre数据库，jsonb字段，由于mapper层用的是mybatis，而mybatis的JSQLParser无法解析mapper.xml文件中的jsonb更新语法，所以无法直接用sql更新jsonb字段中的json内容，于是我使用jdbcTemplate执行原生sql来更新这个字段的值。但我把日志中的sql和参数拿去dbever执行都可以正确更新字段值，但是偏偏在项目中无法正确更新，也不报错，原生sql执行也没问题，也正确返回了影响行数，但数据库的字段就是没有变化。]]></description><category></category></item><item><title><![CDATA[No valid entries or contents found, this is not a valid OOXML (Office Open XML) file]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150413984</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150413984</guid><author>oak_javaLearner</author><pubDate>Fri, 15 Aug 2025 09:33:35 +0800</pubDate><description><![CDATA[这种情况下 我没有找到解决办法，我尝试将用户文件读取为流并保存为本地的一个xlsx文件，但失败了，原理我认为和在外边改了文件的拓展名一样，改完不一定可用，不推荐这种解决办法，因为即使成功了也一定不是稳健的做法。WorkbookFactory.create()方法会自己判断文件格式，并返回给你对应文件格式的Workbook。如果有遇到这种情况并且解决了的大佬可以在评论区说下是怎么做的，互相学习。]]></description><category></category></item><item><title><![CDATA[Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: “(“ “(“ at line 3,]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347426</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347426</guid><author>oak_javaLearner</author><pubDate>Wed, 13 Aug 2025 15:22:07 +0800</pubDate><description><![CDATA[写原生SQL，用SQL session template提交执行，这种适用于第一种方法行不通的情况，比如我就是因为公司的依赖库强制排除了starter里的extension依赖，我没法加，所以就只能注入了sqlSessionTemplate提交原生sql来实现，两种方法本质都是绕过sql解析器，第一种优雅一点，第二种使用时要注意sql注入问题。mybatis-plus的xml中自带的xml解析器不支持当前写法，这个错误是JSQLParser报出来的。@Update(“xxxxxx你的sqlxxxxx”)]]></description><category></category></item><item><title><![CDATA[Tried to allocate an array of length 118,120,841, but the maximum length for this record type is 100]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347241</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347241</guid><author>oak_javaLearner</author><pubDate>Wed, 13 Aug 2025 15:15:53 +0800</pubDate><description><![CDATA[这是一个内存分配问题，具体来说，它涉及到 Apache POI 在处理 Excel 文件时，尝试分配超过最大限制的内存数组。通常这种问题出现在处理大文件时，特别是当 Excel 文件非常大的时候 ，我遇到这个错误是因为上传了一个有50万数据的excel。1.分批处理数据：如果你处理的数据量非常大，可以考虑将文件分批处理，避免一次性加载整个文件。这样就可以避免内存溢出。3.可以加一个全局的配置，原理和第二中方法一样，就是把这个设置改成全局的，方法有很多，这里就不介绍了。]]></description><category></category></item><item><title><![CDATA[An I/O error occurred while sending to the backend.]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347124</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/150347124</guid><author>oak_javaLearner</author><pubDate>Wed, 13 Aug 2025 15:10:56 +0800</pubDate><description><![CDATA[错误本身的意思是和数据库的IO链接出现了问题，但有这个错误基本上都是因为sql写的不行，包括但不限于：sql结构过于复杂导致执行效率太慢，扫描的数据太多，等等。优化一下sql就可以了。]]></description><category></category></item><item><title><![CDATA[postgre数据库中json及jsonb字段相关操作及函数]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/149634296</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/149634296</guid><author>oak_javaLearner</author><pubDate>Fri, 25 Jul 2025 11:42:16 +0800</pubDate><description><![CDATA[2.根据jsonb字段的key，以及key对应的value查询，Java Mapper接口定义参数为【Map<String, Object> conditionMap】3.两张表join，A表有就返回A表数据，B表有就返回B表数据：coalesce()函数，相对于单纯join以及内存操作速度提升非常明显。1.获取jsonb字段中所有key，以及key对应的去重值集合。]]></description><category></category></item><item><title><![CDATA[springboot整合pagehelper实现mybatis分页]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/145994789</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/145994789</guid><author>oak_javaLearner</author><pubDate>Mon, 03 Mar 2025 17:53:29 +0800</pubDate><description><![CDATA[注意：PageHelper.startPage(pageNum, pageSize);这一行代码后腰紧跟需要分页的mapper方法。如果分页过程中提示你sql语法错误，提示你limit关键字前边有一个分号；，那就把sql中结尾的分号删掉试试。上边的setProperties基本是与yml文件中加的配置重复的，想留着也可以，删了也行。3.service调用写法。]]></description><category></category></item><item><title><![CDATA[controller调用service层报错Invalid bound statement (not found)]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/145987873</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/145987873</guid><author>oak_javaLearner</author><pubDate>Mon, 03 Mar 2025 14:41:43 +0800</pubDate><description><![CDATA[原本我以为是controller依赖service，而service又依赖mapper，mapper指向问题导致service实例化有问题，所以controller层调用方法报找不到，但其实是service没找到mapper，但这个很快被我推翻，原因是如果mapper找不到，那应该在service调用mapper时报找不到，而不是controller调用service就报找不到了，并且我写了个测试方法，不调用mapper，也仍然报这个错，所以具体原因我暂时还没想到。其实还是不太理解，暂时记录。]]></description><category></category></item><item><title><![CDATA[Java导出文件名乱码问题解决]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144183411</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144183411</guid><author>oak_javaLearner</author><pubDate>Mon, 02 Dec 2024 11:18:15 +0800</pubDate><description><![CDATA[参考博客：]]></description><category></category></item><item><title><![CDATA[Springboot启动报错’javax.management.MBeanServer’ that could not be found.]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144062691</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144062691</guid><author>oak_javaLearner</author><pubDate>Tue, 26 Nov 2024 16:47:50 +0800</pubDate><description><![CDATA[顺便一说，'javax.management.MBeanServer‘这个类是默认生效，必须手动声明使其失效，如果是单体springboot项目在分布式项目里有这个问题的话，方法1大概率会失效，]]></description><category></category></item><item><title><![CDATA[解决 ### Error updating database. Cause: java.lang.NullPointerException]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144020842</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/144020842</guid><author>oak_javaLearner</author><pubDate>Mon, 25 Nov 2024 10:32:11 +0800</pubDate><description><![CDATA[如上所示，报错信息中并不会提示你说错误在哪个文件里【error may exist xxxMapper.xml(best guess)】，只会报一堆这样的东西，如果你也跟我一样，就把标签换成select试试。]]></description><category></category></item><item><title><![CDATA[解决BigDecimal小数传到前端丢失最后的0（2.10-＞2.1）]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/141401628</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/141401628</guid><author>oak_javaLearner</author><pubDate>Wed, 21 Aug 2024 19:51:46 +0800</pubDate><description><![CDATA[加个注解：@JsonSerialize(using = ToStringSerializer.class)这个问题通常是由于Java在序列化BigDecimal对象到JSON时，会自动移除末尾多余的零。BigDecimal类本身并没有问题，问题出在了序列化和传输的过程中。]]></description><category></category></item><item><title><![CDATA[解决union all之后字段返回非该字段类型的值]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/140604452</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/140604452</guid><author>oak_javaLearner</author><pubDate>Mon, 22 Jul 2024 11:12:02 +0800</pubDate><description><![CDATA[这就会导致下半部分age的值会对应到birth上，也就会出现一个datetime类型的字段却返回了一个0的问题。首先明确一个概念，union all的两部分的结果表的字段必须名称，类型，位置的先后都完全一样才可以。我的错误：一个datetime类型的字段，单独查询没问题，union all之后却返回了0。如图所示，union all的两部分，上边部分的字段顺序是name,birth,age。所以在写union all的sql时，最好保证两部分的字段。下半部分是name,age,birth。]]></description><category></category></item><item><title><![CDATA[@Transient注解不生效]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/138566315</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/138566315</guid><author>oak_javaLearner</author><pubDate>Wed, 08 May 2024 11:52:42 +0800</pubDate><description><![CDATA[@Transient注解不生效的解决]]></description><category></category></item><item><title><![CDATA[postman接收后端返回的文件流并自动下载]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/134015794</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/134015794</guid><author>oak_javaLearner</author><pubDate>Tue, 24 Oct 2023 16:34:32 +0800</pubDate><description><![CDATA[不要点send，点send and download，postman接受完文件流会弹出文件保存框让你选择保存路径。]]></description><category></category></item><item><title><![CDATA[Java导出工具类]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133992612</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133992612</guid><author>oak_javaLearner</author><pubDate>Mon, 23 Oct 2023 16:10:37 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_42825101/article/details/127690916]]></description><category></category></item><item><title><![CDATA[Java对含有null的集合进行排序]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133983103</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133983103</guid><author>oak_javaLearner</author><pubDate>Mon, 23 Oct 2023 10:06:43 +0800</pubDate><description><![CDATA[下边一行代码执行完就排好序了，并且nullsFirst会把null值排到前边，如果你想排到后边就换成nullsLast，另外naturalOrder是正序，如果你想倒序就换成reverseOrder。1.原始comparator。原始方法判空后再排序。]]></description><category></category></item><item><title><![CDATA[java list根据两个字段进行排序]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133348088</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/133348088</guid><author>oak_javaLearner</author><pubDate>Wed, 27 Sep 2023 13:41:03 +0800</pubDate><description><![CDATA[以上代码的意思是：现根据姓名排序，如果姓名一样，就根据年龄排序，排完序后的集合呈现姓名优先，年龄其次的升序排列。如果是根据单个字段排序，lambda表达式就可以，使用的是stream().sorted()方法。对两个或多个，使用List自带的sort方法，根据业务要求自行调整优先排序字段。]]></description><category></category></item><item><title><![CDATA[unable to read askpass response from ‘C:\Users\EDY\AppData\Local\JetBrains\IntelliJIdea2023.2\tmp\in]]></title><link>https://blog.youkuaiyun.com/oak_javaLearner/article/details/132907708</link><guid>https://blog.youkuaiyun.com/oak_javaLearner/article/details/132907708</guid><author>oak_javaLearner</author><pubDate>Fri, 15 Sep 2023 16:56:17 +0800</pubDate><description><![CDATA[参考：https://blog.youkuaiyun.com/m0_52985087/article/details/132366897。勾上这个就会提示让你输入用户名密码，输入就行了，如果你本地已经配置过了，直接就能用。原因就是没有获取到git的用户信息，用户名密码。]]></description><category></category></item></channel></rss>