<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[李酒酒的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jhno99</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jhno99]]></copyright><item><title><![CDATA[Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/131938005</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/131938005</guid><author>Jhno99</author><pubDate>Wed, 26 Jul 2023 15:19:56 +0800</pubDate><description><![CDATA[在.pro文件中添加上述代码之后不会报格式问题了，但是会报报错C1189 #error: "No Target Architecture"的问题，对此解决方案是在.pro文件上加上_AMD64_宏定义，如下图所示。在 .pro 文件中添加以下代码（我添加在了 CONFIG 和 SOURCES之间有用，但具体位置可能不唯一，可以自己试一下，有用即可）目录下是否有qsqlmysql.dll和qsqlmysqld.dll，如果没有，就说明Qt没有相应的mysql驱动。第一种：无MySQL驱动。]]></description><category></category></item><item><title><![CDATA[【Qt】QCustomPlot组件跟随鼠标显示xy轴坐标位置]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/128835603</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/128835603</guid><author>Jhno99</author><pubDate>Wed, 01 Feb 2023 16:18:13 +0800</pubDate><description><![CDATA[​自定义一个继承QCustomPlot类的实现类，重写mouseMove虚函数实现，从而获取鼠标位置，然后计算出点的坐标值，再利用QToolTip显示点坐标。]]></description><category></category></item><item><title><![CDATA[【QT】error: LNK2019: 无法解析的外部符号 “__declspec(dllimport) public:]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/128300716</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/128300716</guid><author>Jhno99</author><pubDate>Tue, 13 Dec 2022 14:02:10 +0800</pubDate><description><![CDATA[QT：error: LNK2019: 无法解析的外部符号 “__declspec(dllimport) public:错误原因以及解决方案]]></description><category></category></item><item><title><![CDATA[【Qt】解决QScrollBar调用setValue()方法会自动发送valueChanged问题]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/128099220</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/128099220</guid><author>Jhno99</author><pubDate>Tue, 29 Nov 2022 15:41:17 +0800</pubDate><description><![CDATA[调用Qt组件QScrollBar的setValue()方法时，程序会自动执行valueChanged()信号的槽函数，如何屏蔽掉这一事件呢？]]></description><category></category></item><item><title><![CDATA[VTK & QT QVTKWidget自定义鼠标和键盘交互事件]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/128078287</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/128078287</guid><author>Jhno99</author><pubDate>Mon, 28 Nov 2022 14:16:37 +0800</pubDate><description><![CDATA[VTK & QT 实现QVTKWidget自定义鼠标和键盘交互事件]]></description><category></category></item><item><title><![CDATA[HTTP & RPC接口参数校验]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/120210258</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/120210258</guid><author>Jhno99</author><pubDate>Thu, 09 Sep 2021 21:22:01 +0800</pubDate><description><![CDATA[一、 HTTP/HTTPS接口

对于这种前端请求，现在参数校验的方法极其多，比较省事的就是使用spring-boot的@Validated注解来校验，如果数据异常则会统一抛出异常，方便异常中心统一处理。比如我们判断一个输入参数是否合法，可以用如下方式。

1. 在controller上声明需要对数据进行校验


@PostMapping("/addDelivery")
    public MlcBaseResult&lt;Boolean&gt; addDelivery(@RequestBody @Val]]></description><category></category></item><item><title><![CDATA[Java在内存中做String类型字段的模糊查询/模糊匹配]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/120210190</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/120210190</guid><author>Jhno99</author><pubDate>Thu, 09 Sep 2021 21:18:09 +0800</pubDate><description><![CDATA[方法一：String的contains方法

这个是String自带的子串匹配方法，其实其内里实现就是方法三，下面详细讲。

方法二：正则表达式

几个方法的定义与使用

Pattern.compile()：Pattern构造器是私有的，不能通过new创建Pattern对象，可以通过Pattern调用静态方法compile返回Pattern实例，其内部实现是new Pattern(regex, 0)。

Pattern.complie(String regex,int flag)：它接收一个标记参数，调整匹]]></description><category></category></item><item><title><![CDATA[orcle数据库order by 按字符串NVARCHAR2类型字段排序时顺序错误]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/110824608</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/110824608</guid><author>Jhno99</author><pubDate>Mon, 07 Dec 2020 18:58:51 +0800</pubDate><description><![CDATA[唉，真得是，有事没事地总会遇到点奇奇怪怪的bug

不多说了，看图



REGISTRATION_ID字段是NVARCHAR2类型的，当我以此进行降序排序时，发现序列似乎是按左对齐排的，从第一位开始比较，第一位大的排在前面，如果第一位相同则继续比较第二位，上面这种情况，“34093”虽然数值比较小，但是首位数字大，所以排在的前面。

这是orcle内部排序规则的问题，mysql也同样如此。如果想要按数值大小进行排序，就需要先将其转化为数值类型。

1. 使用To_Number转化函数。



2. 直接.]]></description><category></category></item><item><title><![CDATA[救命sql语句----navicat for oracle 误操作恢复语句]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/110480259</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/110480259</guid><author>Jhno99</author><pubDate>Wed, 02 Dec 2020 14:16:08 +0800</pubDate><description><![CDATA[今天在公司因为写错了一个update语句，把基础表的数条语句的多个字段改掉了，瞬间慌到不行，还好找到了orcle的闪回功能！！！

oracle 有一个闪回功能

查询该时间段 这个表的状态
select * from 表名 as of timestamp to_timestamp('2019-05-24 13:00:00', 'yyyy-mm-dd hh24:mi:ss');

开启闪回
alter table 表名 enable row movement;

把表的状态闪回到这个时间段
flashb..]]></description><category></category></item><item><title><![CDATA[css实现斜线效果以及vue自带插件打印背景色]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/109604581</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/109604581</guid><author>Jhno99</author><pubDate>Tue, 10 Nov 2020 18:57:17 +0800</pubDate><description><![CDATA[在开发过程中遇到了一个很奇葩的问题，问题要求总结有如下三点：

页面分三部分，上半部分高度不确定，下半部分高度确定，中间部分需要填充除了上半部分和下半部分的区域。
填充方式为斜线。
该页面需要打印出来。

这三个要求随便一个单独实现都不难，难得是全部满足。
首先，中间部分要填充剩下的区域，我采用弹性盒模型去实现。
&lt;div style="height:180mm;display:flex:flex-direction:column"&gt;
	&lt;div class="top-div" style]]></description><category></category></item><item><title><![CDATA[修改antd vue组件a-table的默认样式]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/109595427</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/109595427</guid><author>Jhno99</author><pubDate>Tue, 10 Nov 2020 11:40:21 +0800</pubDate><description><![CDATA[antd vue的组件固然简单好用，但是其默认样式有时是并不符合我们的需求的，我在开发过程中遇到一个问题：

a-table表格padding过宽

如图所示

而我需要将这个表格进行打印，因此需要在保证样式美观的同时最大限度地利用纸张，所以我想把padding调小一点，这里就用到了vue的样式穿透。


        &lt;a-table
          class="AStockOutDetailTable"
          style="margin-top: -5px;"
       ]]></description><category></category></item><item><title><![CDATA[springboot 手动回滚事务]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/109083079</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/109083079</guid><author>Jhno99</author><pubDate>Wed, 14 Oct 2020 21:06:53 +0800</pubDate><description><![CDATA[关于springboot手动回滚事务有这样一个应用场景：

SpringBoot事务注解@Transactional 事物回滚、手动回滚事物

上面一篇文章是介绍了利用手动回滚事务解决“如果异常被try｛｝catch｛｝了，事务就不回滚了”这一问题，而我在项目开发过程中发现了它的另一应用场景,如下是在serviceImpl中写的一个方法


	@Override
	@Transactional
	public Result saveMain(SingleOutpatientPrescription sing]]></description><category></category></item><item><title><![CDATA[Java关于checked以及Unchecked异常的详细理解]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/109021692</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/109021692</guid><author>Jhno99</author><pubDate>Mon, 12 Oct 2020 09:35:23 +0800</pubDate><description><![CDATA[挖个坑，周末写。
]]></description><category></category></item><item><title><![CDATA[关于BigDecimal精度的几个讲解比较详细的帖子]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/108848083</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/108848083</guid><author>Jhno99</author><pubDate>Mon, 28 Sep 2020 13:39:54 +0800</pubDate><description><![CDATA[【超详细】解释BigDecimal精度的坑：https://blog.youkuaiyun.com/gege87417376/article/details/79550749

源码级讲解

BigDecimal源码解析：https://blog.youkuaiyun.com/yinghuananhai/article/details/81260327

BigDecimal源码分析：https://blog.youkuaiyun.com/en_joker/article/details/86589691
...]]></description><category></category></item><item><title><![CDATA[LeetCode169.多数元素、229.求众数II、JZ28出现次数超过一半的数字]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/108562726</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/108562726</guid><author>Jhno99</author><pubDate>Sun, 13 Sep 2020 19:31:45 +0800</pubDate><description><![CDATA[JZ28.出现次数超过一半的数字
题目描述
数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次，超过数组长度的一半，因此输出2。如果不存在则输出0。
LeetCode169.多数元素
题目描述
给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的，并且给定的数组总是存在多数元素。
示例 1:

输入: [3,2,3]
输出: ]]></description><category></category></item><item><title><![CDATA[关于二进制存储以及位运算符的一些Tips]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/108296411</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/108296411</guid><author>Jhno99</author><pubDate>Sat, 29 Aug 2020 17:16:41 +0800</pubDate><description><![CDATA[二进制存储
数字在计算机当中是以二进制的形式来进行存储的。
比如说，我们都知道，int型的取值范围为-2147483648到+2147483647，即 -231~（231-1），为什么呢？这是因为，计算机中规定int型的存储空间为4个字节，也就是32位，考虑到数字有正负之分，所以取最高位作为符号位，0表示正数，1表示负数，剩下31位为数值位。
而正数和负数在数值位上的表示也有不同。

正数在计算机中是以原码的形式存储的，即最小正整数为1（0-000 0000 0000 0000 0000 0000 0000]]></description><category></category></item><item><title><![CDATA[JZ11：二进制中1的个数]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/108272475</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/108272475</guid><author>Jhno99</author><pubDate>Fri, 28 Aug 2020 08:46:45 +0800</pubDate><description><![CDATA[题目描述

输入一个整数，输出该数32位二进制表示中1的个数。其中负数用补码表示。

解题思路

搬运牛客网题目评论里一个巨牛的解题思路：

https://www.nowcoder.com/questionTerminal/8ee967e43c2c4ec193b040ea7fbb10b8?f=discussion

如果一个整数不为0，那么这个整数至少有一位是1。如果我们把这个整数减1，那么原来处在整数最右边的1就会变为0，原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会]]></description><category></category></item><item><title><![CDATA[解决JS加减乘除四则运算结果不准确以及精度丢失的问题]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/108009947</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/108009947</guid><author>Jhno99</author><pubDate>Fri, 14 Aug 2020 17:27:56 +0800</pubDate><description><![CDATA[问题描述

在做公司库存数量的逻辑时踩到的大坑，如果对于浮点数，直接在JavaScript中进行加减乘除四则运算会出现很大的误差。问题产生的原因在于，计算机中是将十进制的数据转化为二进制来进行计算的，而对于浮点型的数据，转化成二进制之后可能会变成一个无限循环的数字，而计算机中是不允许无限循环的存在的，那就要做截断，而截断后的数据运算之后再转成十进制就可能会产生极大的误差。

其实并不是只JS存在这种问题，Java、C++也都如此，只不过他们内部都有封装好的方法来解决这个问题。JS是一门弱语言，没有做类似的操]]></description><category></category></item><item><title><![CDATA[Java虚拟机的垃圾回收器介绍]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/107547586</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/107547586</guid><author>Jhno99</author><pubDate>Fri, 14 Aug 2020 08:39:08 +0800</pubDate><description><![CDATA[一、GC分类与性能指标



二、不同的垃圾回收器概述

三、Serial回收器：串行回收

四、ParNew回收器：并行回收

五、Parallel回收器：吞吐量优先

六、CMS回收器：低延迟

七、G1回收器：区域化分代式

八、垃圾回收器总结

九、GC日志分析

十、垃圾回收器的新发展
...]]></description><category></category></item><item><title><![CDATA[JZ48：不用加减乘除做加法]]></title><link>https://blog.youkuaiyun.com/Jhno99/article/details/107850646</link><guid>https://blog.youkuaiyun.com/Jhno99/article/details/107850646</guid><author>Jhno99</author><pubDate>Fri, 07 Aug 2020 08:31:35 +0800</pubDate><description><![CDATA[不用加减乘除做加法
剑指Offer上遇到的一个题，还蛮有意思的。
算法描述：写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。
解题思路：看到不用四则运算符号的时候第一反应就是将其转化为二进制的位运算。在计算机中，整数n是用补码进行存储的【补码：如果n为正数，则原码=反码=补码，如果n为负数，则补码=反码+1】。s=a+b其实就是a和b的补码无进位和+进位的结果，其中，无进位和为a+b补码的异或运算结果，进位为两数补码的按位与运算结果左移一位。
举例说明：
对于2（010）+ 4]]></description><category></category></item></channel></rss>