博客园 - 追极
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=158951
2024-02-22T05:59:19Z
追极
https://www.cnblogs.com/hdwang/
feed.cnblogs.com
https://www.cnblogs.com/hdwang/p/18026990
mysql二进制文件导入导出 - 追极
-- 插入文件INSERT INTO test(b)VALUES (LOAD_FILE('D:/text.xlsx')); -- 导出文件到服务器SELECT b INTO DUMPFILE 'D:/test001.xlsx'FROM test where id=8; -- 导出文本类型到客户机(二
2024-02-22T03:42:00Z
2024-02-22T03:42:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】-- 插入文件INSERT INTO test(b)VALUES (LOAD_FILE('D:/text.xlsx')); -- 导出文件到服务器SELECT b INTO DUMPFILE 'D:/test001.xlsx'FROM test where id=8; -- 导出文本类型到客户机(二 <a href="https://www.cnblogs.com/hdwang/p/18026990" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17983063
Java实现对象转成字节数组(整型支持按位写入,字符串则按字节写入) - 追极
闲着无聊,写了一个对象转换成byte[]的工具类,支持整型按位写入(大大节省空间),具体步骤如下: 1. 定义实体类和注解 public class User { /** * ID,4个字节,32bit */ @JSONField(ordinal = 1) @BitPos(offset=0,size
2024-01-23T09:59:00Z
2024-01-23T09:59:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】闲着无聊,写了一个对象转换成byte[]的工具类,支持整型按位写入(大大节省空间),具体步骤如下: 1. 定义实体类和注解 public class User { /** * ID,4个字节,32bit */ @JSONField(ordinal = 1) @BitPos(offset=0,size <a href="https://www.cnblogs.com/hdwang/p/17983063" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17877131.html
Excel判断日期是否是工作日的实现(排除节假日,加上补班日) - 追极
实现思路:工作日 = 【周一 到 周五(排除节假日) 或者 补班日】 公式编写: 1. 周一到周五判断 WEEKDAY(A2,2) 获取该日期是星期几(返回:1-7),那么周一到周五就是 < 6 2. 非节假日判断 COUNTIF($G$2:$G$398,A2)=0 统计该日期在指定区域$G$2:$
2023-12-05T06:25:00Z
2023-12-05T06:25:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】实现思路:工作日 = 【周一 到 周五(排除节假日) 或者 补班日】 公式编写: 1. 周一到周五判断 WEEKDAY(A2,2) 获取该日期是星期几(返回:1-7),那么周一到周五就是 < 6 2. 非节假日判断 COUNTIF($G$2:$G$398,A2)=0 统计该日期在指定区域$G$2:$ <a href="https://www.cnblogs.com/hdwang/p/17877131.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17672648.html
用poi把xls格式转换成xlsx格式 - 追极
java中要实现excel新老格式的转换比较麻烦,开源库也没几个好用的。用ChatGpt查询也是推荐直接用POI,下面是借助ChatGPT写出来的代码,经过小小修改,格式转换良好,基本能用,就是效率比较低下。将就着用吧,哎! package com.yc.cloud.excel.util; impo
2023-09-01T10:16:00Z
2023-09-01T10:16:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】java中要实现excel新老格式的转换比较麻烦,开源库也没几个好用的。用ChatGpt查询也是推荐直接用POI,下面是借助ChatGPT写出来的代码,经过小小修改,格式转换良好,基本能用,就是效率比较低下。将就着用吧,哎! package com.yc.cloud.excel.util; impo <a href="https://www.cnblogs.com/hdwang/p/17672648.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17670534.html
使用SheetJs实现在线预览Excel(保留单元格格式信息) - 追极
一、寻找合适的在线预览Excel的js库 我: 在线预览Excel文件有哪些好用的js库 ChatGPT: 有几个好用的JavaScript库可以用来在网页上实现在线预览Excel文件。以下是一些常见且功能强大的库: SheetJS (xlsx.js): 这是一个功能强大的库,可以在网页上实现Exc
2023-08-31T14:25:00Z
2023-08-31T14:25:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】一、寻找合适的在线预览Excel的js库 我: 在线预览Excel文件有哪些好用的js库 ChatGPT: 有几个好用的JavaScript库可以用来在网页上实现在线预览Excel文件。以下是一些常见且功能强大的库: SheetJS (xlsx.js): 这是一个功能强大的库,可以在网页上实现Exc <a href="https://www.cnblogs.com/hdwang/p/17670534.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17635619.html
使用hutool给excel单元格标黄和添加批注 - 追极
package com.yc.cloud.excel.util; import cn.hutool.poi.excel.ExcelWriter; import lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.usermodel.HSSFCl
2023-08-16T09:04:00Z
2023-08-16T09:04:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】package com.yc.cloud.excel.util; import cn.hutool.poi.excel.ExcelWriter; import lombok.extern.slf4j.Slf4j; import org.apache.poi.hssf.usermodel.HSSFCl <a href="https://www.cnblogs.com/hdwang/p/17635619.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17470132.html
java集成chatGpt完整案例代码(效果和官网一样逐字输出) - 追极
背景 要集成chatGpt参考我上一篇文章即可。但是,如果要实现官网一样的效果,逐字输出,难度就提升了不少了。经过在官网的研究发现它应该是采用了SSE技术,这是一种最新的HTTP交互技术。SSE(Server-Sent Events):通俗解释起来就是一种基于HTTP的,以流的形式由服务端持续向客户
2023-06-09T11:46:00Z
2023-06-09T11:46:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】背景 要集成chatGpt参考我上一篇文章即可。但是,如果要实现官网一样的效果,逐字输出,难度就提升了不少了。经过在官网的研究发现它应该是采用了SSE技术,这是一种最新的HTTP交互技术。SSE(Server-Sent Events):通俗解释起来就是一种基于HTTP的,以流的形式由服务端持续向客户 <a href="https://www.cnblogs.com/hdwang/p/17470132.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17460989.html
java集成OpenAI的chatGpt功能 - 追极
一、开通OpenAI账号 1.注册OpenAI账号 官网地址:https://openai.com/ 注意:提前准备好国外手机号,没有的话用短信平台购买手机号接收短信 2.购买国外手机号 地址:https://tiger-sms.com/ 我用支付宝充值了30多元(起充要30,加上手续费30多有点坑
2023-06-06T09:02:00Z
2023-06-06T09:02:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】一、开通OpenAI账号 1.注册OpenAI账号 官网地址:https://openai.com/ 注意:提前准备好国外手机号,没有的话用短信平台购买手机号接收短信 2.购买国外手机号 地址:https://tiger-sms.com/ 我用支付宝充值了30多元(起充要30,加上手续费30多有点坑 <a href="https://www.cnblogs.com/hdwang/p/17460989.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17240320.html
java实现多字段排序(普通对象List和MapList) - 追极
public class SortTest { public static void main(String[] args) { //普通对象list sortVOList(); //mapList sortMapList(); } private static void sortVOList()
2023-03-21T07:52:00Z
2023-03-21T07:52:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】public class SortTest { public static void main(String[] args) { //普通对象list sortVOList(); //mapList sortMapList(); } private static void sortVOList() <a href="https://www.cnblogs.com/hdwang/p/17240320.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17236596.html
文件名重命名算法 - 追极
/** * 重命名重复的文件名 * * @param fileNameList 文件名列表 * @return重命名后的文件名列表 */ private static List<String> getNoRepeatFileNameList(List<String> fileNameList) {
2023-03-20T07:49:00Z
2023-03-20T07:49:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】/** * 重命名重复的文件名 * * @param fileNameList 文件名列表 * @return重命名后的文件名列表 */ private static List<String> getNoRepeatFileNameList(List<String> fileNameList) { <a href="https://www.cnblogs.com/hdwang/p/17236596.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/17188363.html
使用hutool实现压缩zip到输出流(包括空zip) - 追极
//将文件直接压缩至输出流 String[] fileNames = fileNameList.toArray(new String[0]); InputStream[] inputStreams = inputStreamList.toArray(new InputStream[0]); if (
2023-03-07T07:48:00Z
2023-03-07T07:48:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】//将文件直接压缩至输出流 String[] fileNames = fileNameList.toArray(new String[0]); InputStream[] inputStreams = inputStreamList.toArray(new InputStream[0]); if ( <a href="https://www.cnblogs.com/hdwang/p/17188363.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16966513.html
hutool poi 基于模板的Excel文件导出(解决: Attempting to write a row already written to disk 问题) - 追极
/** * 写Excel文件 * * @param data 数据 * @param configs 列配置 * @param destFile 目标文件 * @param templateFile 模板文件 * @param onlyAlias 是否仅写出有别名的列 * @param isWrit
2022-12-08T08:37:00Z
2022-12-08T08:37:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】/** * 写Excel文件 * * @param data 数据 * @param configs 列配置 * @param destFile 目标文件 * @param templateFile 模板文件 * @param onlyAlias 是否仅写出有别名的列 * @param isWrit <a href="https://www.cnblogs.com/hdwang/p/16966513.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16921839.html
com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF - 追极
使用mybatis-plus批量插入的时候报错信息为:com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF 排查sql日志发现生成的sq
2022-11-24T06:50:00Z
2022-11-24T06:50:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】使用mybatis-plus批量插入的时候报错信息为:com.alibaba.druid.sql.parser.ParserException: syntax error, expect ')', pos 40, line 1, column 41, token EOF 排查sql日志发现生成的sq <a href="https://www.cnblogs.com/hdwang/p/16921839.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16779786.html
使用SheetJs导出Excel设置指定单元格格式 - 追极
var tbl = document.getElementById('sheetjs'); var wb = XLSX.utils.table_to_book(tbl); var ws = wb.Sheets["Sheet1"]; // get the current sheet console.l
2022-10-11T08:53:00Z
2022-10-11T08:53:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】var tbl = document.getElementById('sheetjs'); var wb = XLSX.utils.table_to_book(tbl); var ws = wb.Sheets["Sheet1"]; // get the current sheet console.l <a href="https://www.cnblogs.com/hdwang/p/16779786.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16776828.html
使用hutool poi 拷贝sheet到新excel文件中 - 追极
public class CopySheetToFileTest { public static void main(String[] args) { File file = new File(CopySheetToFileTest.class.getResource("/bx.xlsx").get
2022-10-10T10:57:00Z
2022-10-10T10:57:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】public class CopySheetToFileTest { public static void main(String[] args) { File file = new File(CopySheetToFileTest.class.getResource("/bx.xlsx").get <a href="https://www.cnblogs.com/hdwang/p/16776828.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16739147.html
mysql 8.0设置collation_connection - 追极
设置全局 set global collation_connection = utf8mb4_general_ci set global default_collation_for_utf8mb4 = utf8mb4_general_ci 注: default_collation_for_utf8m
2022-09-28T10:17:00Z
2022-09-28T10:17:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】设置全局 set global collation_connection = utf8mb4_general_ci set global default_collation_for_utf8mb4 = utf8mb4_general_ci 注: default_collation_for_utf8m <a href="https://www.cnblogs.com/hdwang/p/16739147.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16715797.html
mysql将varchar类型转成int类型 - 追极
//语法 convert(value, unsigned int) //示例, null值无法转换需用ifnulll函数处理,空白符可以直接转换成0 select convert(ifnull(null,0),unsigned int),convert('',unsigned int); //结论:
2022-09-21T07:36:00Z
2022-09-21T07:36:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】//语法 convert(value, unsigned int) //示例, null值无法转换需用ifnulll函数处理,空白符可以直接转换成0 select convert(ifnull(null,0),unsigned int),convert('',unsigned int); //结论: <a href="https://www.cnblogs.com/hdwang/p/16715797.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16617720.html
生成报表时计算报表的截止上报时间 - 追极
背景 每张报表有个截止上报时间,截止时间的计算稍微复杂,下面记录一下自己的写作成果。当月月报截止时间下月xx号,当季季报截止时间下季第一个月。。。 数据结构 public enum ReportFrequencyEnum { YEAR("year", "年"), MONTH("month", "月"
2022-08-23T12:37:00Z
2022-08-23T12:37:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】背景 每张报表有个截止上报时间,截止时间的计算稍微复杂,下面记录一下自己的写作成果。当月月报截止时间下月xx号,当季季报截止时间下季第一个月。。。 数据结构 public enum ReportFrequencyEnum { YEAR("year", "年"), MONTH("month", "月" <a href="https://www.cnblogs.com/hdwang/p/16617720.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16598382.html
mysql执行语句卡死后杀线程 - 追极
1.查询正在运行的线程 SHOW PROCESSLIST; #或 select * from information_schema.PROCESSLIST; 2.批量生成杀线程的命令 select concat("kill ", ID, ";") as command from informatio
2022-08-18T05:25:00Z
2022-08-18T05:25:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】1.查询正在运行的线程 SHOW PROCESSLIST; #或 select * from information_schema.PROCESSLIST; 2.批量生成杀线程的命令 select concat("kill ", ID, ";") as command from informatio <a href="https://www.cnblogs.com/hdwang/p/16598382.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/hdwang/p/16584597.html
递归回调的实现 - 追极
背景 异步树展开如果要实现展开回调比较困难,因为展开的过程是异步的。 前端:js引擎虽然是单线程执行,但是操作ui的线程是单独的,树的展开过程,就经历了js引擎线程+ui线程的过程,展开代码和展开回调的代码在不同时机执行的,本质上就是异步的。 展开回调的实现 展开回调的实现困难点在于判断展开结束的时
2022-08-13T17:03:00Z
2022-08-13T17:03:00Z
追极
https://www.cnblogs.com/hdwang/
【摘要】背景 异步树展开如果要实现展开回调比较困难,因为展开的过程是异步的。 前端:js引擎虽然是单线程执行,但是操作ui的线程是单独的,树的展开过程,就经历了js引擎线程+ui线程的过程,展开代码和展开回调的代码在不同时机执行的,本质上就是异步的。 展开回调的实现 展开回调的实现困难点在于判断展开结束的时 <a href="https://www.cnblogs.com/hdwang/p/16584597.html" target="_blank">阅读全文</a>