<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[houhow的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/houhow</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; houhow]]></copyright><item><title><![CDATA[MySQL深分页问题]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/147143319</link><guid>https://blog.youkuaiyun.com/houhow/article/details/147143319</guid><author>houhow</author><pubDate>Fri, 11 Apr 2025 14:31:36 +0800</pubDate><description><![CDATA[在项目中有一个数据导出的需求，原来的实现方式也比较简单，根据查询条件分页查所有的数据，然后转成csv的格式一行一行写进文件存储中。]]></description><category></category></item><item><title><![CDATA[Win11企业版安装wsl遇到的坑]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/147117239</link><guid>https://blog.youkuaiyun.com/houhow/article/details/147117239</guid><author>houhow</author><pubDate>Thu, 10 Apr 2025 13:51:25 +0800</pubDate><description><![CDATA[通ipaddress查了一下githubusercontent的ip，配置到host文件中；配置完host以后，执行ping命令发现还是有很高的丢包率。]]></description><category></category></item><item><title><![CDATA[mysql如何查询数据出现的次数]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/134071240</link><guid>https://blog.youkuaiyun.com/houhow/article/details/134071240</guid><author>houhow</author><pubDate>Fri, 27 Oct 2023 10:45:24 +0800</pubDate><description><![CDATA[在mysql中，可以利用select语句配合group by和count查询数据出现的次数，count能够返回检索数据的数目，语法为“select 列名,count(*) as count from 表名 group by 列名”。count函数是用来统计表中或数组中记录的一个函数，count(*) 它返回检索行的数目， 不论其是否包含 NULL值。SELECT 从一个表中检索，而不检索其它的列，并且没有 WHERE子句时， COUNT(*)被优化到最快的返回速度。]]></description><category></category></item><item><title><![CDATA[List如何正确删除元素]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/131832614</link><guid>https://blog.youkuaiyun.com/houhow/article/details/131832614</guid><author>houhow</author><pubDate>Thu, 20 Jul 2023 15:59:51 +0800</pubDate><description><![CDATA[为了避免这个问题，可以使用Iterator的remove()方法来删除元素，这样可以避免ConcurrentModificationException异常的出现。中的元素，而在集合被修改时，迭代器可能会失效，从而导致ConcurrentModificationException异常的抛出。这是因为在使用foreach循环时，Java会使用迭代器来。以上代码还有一个简单的写法，使用removeIf。]]></description><category></category></item><item><title><![CDATA[mysql范围in查询时结果排序]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/124670570</link><guid>https://blog.youkuaiyun.com/houhow/article/details/124670570</guid><author>houhow</author><pubDate>Fri, 20 May 2022 23:41:13 +0800</pubDate><description><![CDATA[where qc_code in (
1,2,3,4
)

order by instr('1,2,3,4',qc_code);
]]></description><category></category></item><item><title><![CDATA[maven问题合集]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/123715520</link><guid>https://blog.youkuaiyun.com/houhow/article/details/123715520</guid><author>houhow</author><pubDate>Thu, 24 Mar 2022 16:51:18 +0800</pubDate><description><![CDATA[1.没有办法下载jar包对应的sources文件

在命令行执行如下语句

mvn dependency:resolve -Dclassifier=sources
]]></description><category></category></item><item><title><![CDATA[Stream API]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/123680040</link><guid>https://blog.youkuaiyun.com/houhow/article/details/123680040</guid><author>houhow</author><pubDate>Wed, 23 Mar 2022 10:48:39 +0800</pubDate><description><![CDATA[Stream 是 Java8 中处理集合的关键抽象概念，它可以指定你希望对集合进行的操作，可以执行非常复杂的查找、过滤和映射数据等操作。 

使用Stream API 对集合数据进行操作，就类似于使用 SQL 执行的数 据库查询。也可以使用 Stream API 来并行执行操作。

简而言之， Stream API 提供了一种高效且易于使用的处理数据的方式。



什么是Stream？

Stream是数据渠道，用于操作数据源（集合、数组等）所生成的元素序列。

集合讲的是数据，流讲的是计算。

Strea]]></description><category></category></item><item><title><![CDATA[idea 常见问题]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/118486271</link><guid>https://blog.youkuaiyun.com/houhow/article/details/118486271</guid><author>houhow</author><pubDate>Mon, 05 Jul 2021 11:20:56 +0800</pubDate><description><![CDATA[1.运行报错：Command line is too long.

在该项目文件夹.idea/workspace.xml中找到 PropertiesComponent，然后在其中添加:

&lt;property name="dynamic.classpath" value="true" /&gt;



2.maven无法下载源码，提示can not download source.

用IDEA无法下载源码，可以在命令行项目根目录下，执行如下命令 :mvn dependency:resolve -Dc.]]></description><category></category></item><item><title><![CDATA[如何更好的进行非空判断]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/110433190</link><guid>https://blog.youkuaiyun.com/houhow/article/details/110433190</guid><author>houhow</author><pubDate>Tue, 01 Dec 2020 15:08:18 +0800</pubDate><description><![CDATA[1.Objects

2.Optional

3.使用CollectionUtils

4.使用Maps工具类

5.使用StringUtils工具类
]]></description><category></category></item><item><title><![CDATA[git分支开发模式如何进行代码合并？]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/110432790</link><guid>https://blog.youkuaiyun.com/houhow/article/details/110432790</guid><author>houhow</author><pubDate>Tue, 01 Dec 2020 15:00:18 +0800</pubDate><description><![CDATA[1.通过git fetch获取最新的origin分支信息；

2.本地通过git check out切换到当前需求分支；

3.git push把本地变更推送到origin远端；

4.如果origin master有变更，分支代码必须先进行merge操作；

5.如果没有冲突，可以自动合并成功；如果有冲突，需要在当前分支对origin master进行git pull，把master最新内容pull到本地，解决冲突之后git commit，然后git push。
...]]></description><category></category></item><item><title><![CDATA[Linux服务器日志检索]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/109244447</link><guid>https://blog.youkuaiyun.com/houhow/article/details/109244447</guid><author>houhow</author><pubDate>Fri, 23 Oct 2020 16:16:19 +0800</pubDate><description><![CDATA[1.grep xxx a.log 普通检索

2.zgrep xxx a.log 在压缩文件中检索

3.grep -a xxx a.log 如果根据方式1检索出现‘Binary file a.log matches’之后，可以增加-a参数等同于文本文件处理

4.grep -C nxxx a.log 在方式1的基础上前后检索n行
...]]></description><category></category></item><item><title><![CDATA[mybatis调试怎么查看最终执行的sql语句]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/107793759</link><guid>https://blog.youkuaiyun.com/houhow/article/details/107793759</guid><author>houhow</author><pubDate>Tue, 04 Aug 2020 18:08:19 +0800</pubDate><description><![CDATA[在org.mybatis.spring.SqlSessionTemplate类的invoke方法出打断点，就可以在sqlSession的executor中的delegate中的statementMap里看到要执行的sql语句，详细信息见下图。

掌握这个技能，定位问题非常高效。




]]></description><category></category></item><item><title><![CDATA[SpringMVC实现导出Excel功能]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/103527480</link><guid>https://blog.youkuaiyun.com/houhow/article/details/103527480</guid><author>houhow</author><pubDate>Fri, 13 Dec 2019 15:29:33 +0800</pubDate><description><![CDATA[//1.在controller需要做excel下载的方法中增加HttpServletResponse入参
    public void export(HttpServletResponse response){

        //2.从response中获取输出流，并设置输出流的格式
        OutputStream output = response.ge...]]></description><category></category></item><item><title><![CDATA[MySQL常见错误]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/99721176</link><guid>https://blog.youkuaiyun.com/houhow/article/details/99721176</guid><author>houhow</author><pubDate>Mon, 19 Aug 2019 13:14:30 +0800</pubDate><description><![CDATA[1.手动拼写sql，字符串需要加’ '，如果是数字可能导致索引失效，如果是字符类型，sql执行会报错；

]]></description><category></category></item><item><title><![CDATA[服务器IO处理模型]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/89340496</link><guid>https://blog.youkuaiyun.com/houhow/article/details/89340496</guid><author>houhow</author><pubDate>Tue, 16 Apr 2019 19:47:22 +0800</pubDate><description><![CDATA[目录背景单线程阻塞IO模型多线程阻塞IO模型
背景
本文主要从IO的阻塞与非阻塞，IO处理的单线程和多线程角度探讨服务模型。
对于IO，可以分成阻塞IO和非阻塞IO两大类型。阻塞IO在做IO读写操作时会使当前线程进入阻塞状态，而非阻塞IO则不会进入阻塞状态。
对于线程，单线程情况下由一条线程负责所有客户端连接的IO操作，而多线程情况下则由若干线程共同处理所有客户端连接的IO操作。
下面将对线程和阻...]]></description><category></category></item><item><title><![CDATA[在git bash中使用git rebase的流程]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/81912024</link><guid>https://blog.youkuaiyun.com/houhow/article/details/81912024</guid><author>houhow</author><pubDate>Tue, 21 Aug 2018 17:57:05 +0800</pubDate><description><![CDATA[1.在需要rebase的分支先使用git status查看是否有未commit的代码；

2.切换到本地的master分支，使用git pull把master更新到最新；

3.切换回需要rebase的分支，使用git rebase -i master，-i是交互式rebase的选项，确认commit的message，选择第一个pick，剩下的改为s；

4.如果rebase过程中有冲突，先解决冲...]]></description><category></category></item><item><title><![CDATA[类加载以及实例化]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/80717244</link><guid>https://blog.youkuaiyun.com/houhow/article/details/80717244</guid><author>houhow</author><pubDate>Sun, 17 Jun 2018 10:45:09 +0800</pubDate><description><![CDATA[Java类加载与实例化过程深入理解类加载机制]]></description><category></category></item><item><title><![CDATA[非空校验]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/80611583</link><guid>https://blog.youkuaiyun.com/houhow/article/details/80611583</guid><author>houhow</author><pubDate>Thu, 07 Jun 2018 16:46:34 +0800</pubDate><description><![CDATA[1.String

可以使用apache commons-lang3中的StringUtils.isEmpty和StringUtils.isBlank来判断null、“”、“ ”；其中isEmpty可以判断null和“”，而isBlank除了可以判断null、“”，还可以判断“ ”；

也可以使用Google Guava中的Strings.isNullOrEmpty来判断null、“”；
...]]></description><category></category></item><item><title><![CDATA[Java常见代码问题]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/80047982</link><guid>https://blog.youkuaiyun.com/houhow/article/details/80047982</guid><author>houhow</author><pubDate>Mon, 23 Apr 2018 11:46:12 +0800</pubDate><description><![CDATA[1.潜在的NullPointerException因为链式调用方便而忽略可能存在的空指针问题；比如user.getId()在调用之前需要判断user!=null，这样的判断看似繁琐，但却是很必要的；2.数值对象类型的比较使用==数值对象之间的比较应该使用equals而不是==，因为==比较得到的结果是否是同一个对象；3.DateFormat的线程不安全性在日期类的工具类中，习惯性的静态初始化一个对...]]></description><category></category></item><item><title><![CDATA[Linux问题集锦]]></title><link>https://blog.youkuaiyun.com/houhow/article/details/79979085</link><guid>https://blog.youkuaiyun.com/houhow/article/details/79979085</guid><author>houhow</author><pubDate>Tue, 17 Apr 2018 18:55:40 +0800</pubDate><description><![CDATA[1.在配置文件中必须使用/路径而不是~路径；]]></description><category></category></item></channel></rss>