From 992ad0127cabe6526f4b2b814d929a25c0895a9e Mon Sep 17 00:00:00 2001 From: Charles7c Date: Tue, 2 Aug 2022 21:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=EF=BC=88=E6=9F=90=E5=88=86?= =?UTF-8?q?=E7=B1=BB/YYYY/MM/dd/xxx.md=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- repos/.vitepress/config/sidebar.ts | 43 ++++++++++-------- .../合并两个Git仓库的历史提交记录.md} | 8 ++-- .../修改Git最后一次提交记录的作者和邮箱.md} | 0 .../修改Git所有提交记录中的作者和邮箱.md} | 0 .../F盘上的回收站已损坏。是否清空该驱动器上的回收站.md} | 6 +-- .../for循环中删除集合元素隐藏的陷阱.md} | 0 ... for Spring Boot default configuration.md} | 6 +-- .../SQL 注入攻击风险.md} | 0 .../无法访问F盘。文件或目录损坏且无法读取.md} | 16 +++---- .../JavaScript 无法存储 Java Long 类型数据问题.md} | 4 +- .../创建一个自身类的静态对象变量,究竟会如何执行?.md} | 0 .../用Java8获取近N天日期.md} | 0 .../一条SQL查询今年每月统计信息.md} | 0 .../01-快速入门.md} | 10 ++-- .../02-核心对象.md} | 4 +- .../03-核心配置文件.md} | 6 +-- repos/courses/mybatis/index.md | 6 +-- .../12/25/202012252219533.png} | Bin .../12/25/202012252221059.png} | Bin .../12/25/202012252221734.png} | Bin .../12/25/202012252222518.png} | Bin .../12/25/202012252222738.png} | Bin .../12/25/202012252222812.png} | Bin .../12/25/202012252223067.png} | Bin .../12/25/202012252223708.png} | Bin .../12/25/202012252243280.png} | Bin .../12/26/202012262251170.png} | Bin .../12/26/202012262252221.png} | Bin repos/public/img/2021/11/202111242245992.jpg | Bin 16630 -> 0 bytes .../img/2021/12/{ => 01}/202112012236800.png | Bin .../img/2021/12/{ => 01}/202112012236805.jpeg | Bin .../img/2021/12/{ => 01}/202112012236810.png | Bin .../img/2021/12/{ => 10}/202112102211700.jpg | Bin .../img/2021/12/{ => 10}/202112102211705.png | Bin .../img/2021/12/{ => 10}/202112102211710.png | Bin .../img/2021/12/{ => 13}/202112132257200.png | Bin .../img/2021/12/{ => 13}/202112132257205.png | Bin .../img/2021/12/{ => 13}/202112132257210.png | Bin .../img/2021/12/{ => 13}/202112132257215.png | Bin .../img/2021/12/{ => 13}/202112132257220.png | Bin .../img/2021/12/{ => 13}/202112132257225.png | Bin .../img/2021/12/{ => 13}/202112132257230.png | Bin .../img/2021/12/{ => 13}/202112132257235.png | Bin .../img/2022/01/{ => 26}/202201260941889.png | Bin .../img/2022/01/{ => 26}/202201260942561.png | Bin .../img/2022/03/{ => 25}/202203252252923.png | Bin .../img/2022/03/{ => 25}/202203252252926.png | Bin .../img/2022/03/{ => 25}/202203252252929.png | Bin .../img/2022/03/{ => 25}/202203252252931.png | Bin 49 files changed, 57 insertions(+), 52 deletions(-) rename repos/categories/fragments/2022/03/{25.合并两个Git仓库的历史提交记录.md => 25/合并两个Git仓库的历史提交记录.md} (92%) rename repos/categories/fragments/2022/03/{26.修改Git最后一次提交记录的作者和邮箱.md => 26/修改Git最后一次提交记录的作者和邮箱.md} (100%) rename repos/categories/fragments/2022/03/{27.修改Git所有提交记录中的作者和邮箱.md => 27/修改Git所有提交记录中的作者和邮箱.md} (100%) rename repos/categories/issues/2021/12/{01.F盘上的回收站已损坏。是否清空该驱动器上的回收站.md => 01/F盘上的回收站已损坏。是否清空该驱动器上的回收站.md} (91%) rename repos/categories/issues/2021/12/{08.for循环中删除集合元素隐藏的陷阱.md => 08/for循环中删除集合元素隐藏的陷阱.md} (100%) rename repos/categories/issues/2021/12/{10.Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md => 10/Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md} (91%) rename repos/categories/issues/2021/12/{11.SQL 注入攻击风险.md => 11/SQL 注入攻击风险.md} (100%) rename repos/categories/issues/2021/12/{13.无法访问F盘。文件或目录损坏且无法读取.md => 13/无法访问F盘。文件或目录损坏且无法读取.md} (74%) rename repos/categories/issues/2022/01/{26.JavaScript 无法存储 Java Long 类型数据问题.md => 26/JavaScript 无法存储 Java Long 类型数据问题.md} (96%) rename repos/categories/issues/2022/03/{24.创建一个自身类的静态对象变量,究竟会如何执行?.md => 24/创建一个自身类的静态对象变量,究竟会如何执行?.md} (100%) rename repos/categories/solutions/2021/11/{18.用Java8获取近N天日期.md => 18/用Java8获取近N天日期.md} (100%) rename repos/categories/solutions/2021/11/{22.一条SQL查询今年每月统计信息.md => 22/一条SQL查询今年每月统计信息.md} (100%) rename repos/courses/mybatis/{01.MyBatis基础/01.快速入门.md => 01-MyBatis基础/01-快速入门.md} (96%) rename repos/courses/mybatis/{01.MyBatis基础/02.核心对象.md => 01-MyBatis基础/02-核心对象.md} (98%) rename repos/courses/mybatis/{01.MyBatis基础/03.核心配置文件.md => 01-MyBatis基础/03-核心配置文件.md} (98%) rename repos/public/img/{2021/11/202111232219533.png => 2020/12/25/202012252219533.png} (100%) rename repos/public/img/{2021/11/202111232221059.png => 2020/12/25/202012252221059.png} (100%) rename repos/public/img/{2021/11/202111232221734.png => 2020/12/25/202012252221734.png} (100%) rename repos/public/img/{2021/11/202111232222518.png => 2020/12/25/202012252222518.png} (100%) rename repos/public/img/{2021/11/202111232222812.png => 2020/12/25/202012252222738.png} (100%) rename repos/public/img/{2021/11/202111232222738.png => 2020/12/25/202012252222812.png} (100%) rename repos/public/img/{2021/11/202111232223708.png => 2020/12/25/202012252223067.png} (100%) rename repos/public/img/{2021/11/202111232223067.png => 2020/12/25/202012252223708.png} (100%) rename repos/public/img/{2021/11/202111242243280.png => 2020/12/25/202012252243280.png} (100%) rename repos/public/img/{2021/11/202111242251170.png => 2020/12/26/202012262251170.png} (100%) rename repos/public/img/{2021/11/202111242252221.png => 2020/12/26/202012262252221.png} (100%) delete mode 100644 repos/public/img/2021/11/202111242245992.jpg rename repos/public/img/2021/12/{ => 01}/202112012236800.png (100%) rename repos/public/img/2021/12/{ => 01}/202112012236805.jpeg (100%) rename repos/public/img/2021/12/{ => 01}/202112012236810.png (100%) rename repos/public/img/2021/12/{ => 10}/202112102211700.jpg (100%) rename repos/public/img/2021/12/{ => 10}/202112102211705.png (100%) rename repos/public/img/2021/12/{ => 10}/202112102211710.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257200.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257205.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257210.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257215.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257220.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257225.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257230.png (100%) rename repos/public/img/2021/12/{ => 13}/202112132257235.png (100%) rename repos/public/img/2022/01/{ => 26}/202201260941889.png (100%) rename repos/public/img/2022/01/{ => 26}/202201260942561.png (100%) rename repos/public/img/2022/03/{ => 25}/202203252252923.png (100%) rename repos/public/img/2022/03/{ => 25}/202203252252926.png (100%) rename repos/public/img/2022/03/{ => 25}/202203252252929.png (100%) rename repos/public/img/2022/03/{ => 25}/202203252252931.png (100%) diff --git a/repos/.vitepress/config/sidebar.ts b/repos/.vitepress/config/sidebar.ts index 50e9fbaec..509160d9a 100644 --- a/repos/.vitepress/config/sidebar.ts +++ b/repos/.vitepress/config/sidebar.ts @@ -9,9 +9,9 @@ export const sidebar: DefaultTheme.Config['sidebar'] = { } /** - * 根据 年/月/日.xxmd 的目录格式, 获取侧边栏分组及分组下标题 + * 根据 某分类/YYYY/MM/dd/xxx.md 的目录格式, 获取侧边栏分组及分组下标题 * - * /repos/issues/2022/07/20.xxx.md + * /categories/issues/2022/07/20/xxx.md * * @param path 扫描基础路径 * @returns {DefaultTheme.SidebarGroup[]} @@ -34,24 +34,31 @@ function getItemsByDate (path: string) { objectMode: true }).forEach(({ name }) => { let month = name - // 3.获取月份目录下的所有文章 + // 3.获取所有日期目录 sync(`repos/${path}/${year}/${month}/*`, { - onlyFiles: true, + onlyDirectories: true, objectMode: true }).forEach(({ name }) => { - // 向前追加标题 - items.unshift({ - text: name, - link: `/${path}/${year}/${month}/${name}` + let day = name + // 4.获取日期目录下的所有文章 + sync(`repos/${path}/${year}/${month}/${day}/*`, { + onlyFiles: true, + objectMode: true + }).forEach(({ name }) => { + // 向前追加标题 + items.unshift({ + text: name, + link: `/${path}/${year}/${month}/${day}/${name}` + }) }) }) - // 4.向前追加到分组 + // 5.向前追加到分组 if (items.length > 0) { - // 去除标题名中的日期前缀和扩展名 + // 去除标题名中的扩展名 for (let i = 0; i < items.length; i++) { let text = items[i].text - items[i].text = text.replace('.md', '').substring(text.indexOf('.') + 1) + items[i].text = text.replace('.md', '') } groups.unshift({ text: `${year}年${month}月 (${items.length}篇)`, @@ -61,20 +68,20 @@ function getItemsByDate (path: string) { }) } - // 5.清空侧边栏分组下标题数组 + // 6.清空侧边栏分组下标题数组 items = [] }) }) - // 6.将第一个侧边栏分组的标题展开 + // 7.将第一个侧边栏分组的标题展开 groups[0].collapsed = false return groups } /** - * 根据 分组/序号.xxmd 的目录格式, 获取侧边栏分组及分组下标题 + * 根据 某小课/序号-分组/序号-xxx.md 的目录格式, 获取侧边栏分组及分组下标题 * - * /repos/courses/mybatis/MyBatis基础/20.xxx.md + * courses/mybatis/01-MyBatis基础/01-xxx.md * * @param path 扫描基础路径 * @returns {DefaultTheme.SidebarGroup[]} @@ -105,13 +112,13 @@ function getItems (path: string) { // 3.向前追加到分组 if (items.length > 0) { - // 去除标题名中的日期前缀和扩展名 + // 去除标题名中的前缀和扩展名 for (let i = 0; i < items.length; i++) { let text = items[i].text - items[i].text = text.replace('.md', '').substring(text.indexOf('.') + 1) + items[i].text = text.replace('.md', '').substring(text.indexOf('-') + 1) } groups.push({ - text: `${groupName.substring(groupName.indexOf('.') + 1)} (${items.length}篇)`, + text: `${groupName.substring(groupName.indexOf('-') + 1)} (${items.length}篇)`, collapsible: true, collapsed: true, items: items diff --git a/repos/categories/fragments/2022/03/25.合并两个Git仓库的历史提交记录.md b/repos/categories/fragments/2022/03/25/合并两个Git仓库的历史提交记录.md similarity index 92% rename from repos/categories/fragments/2022/03/25.合并两个Git仓库的历史提交记录.md rename to repos/categories/fragments/2022/03/25/合并两个Git仓库的历史提交记录.md index 6adae5ba6..249291e77 100644 --- a/repos/categories/fragments/2022/03/25.合并两个Git仓库的历史提交记录.md +++ b/repos/categories/fragments/2022/03/25/合并两个Git仓库的历史提交记录.md @@ -45,7 +45,7 @@ tags: cd eladminx ``` - ![202203252252923](../../../../public/img/2022/03/202203252252923.png) + ![202203252252923](../../../../../public/img/2022/03/25/202203252252923.png) 2. 将前端仓库作为后端仓库的远程仓库,起别名为 frontend(这个随便起) @@ -53,7 +53,7 @@ tags: git remote add -f frontend https://gitee.com/Charles7c/eladminx-web.git ``` - ![202203252252926](../../../../public/img/2022/03/202203252252926.png) + ![202203252252926](../../../../../public/img/2022/03/25/202203252252926.png) 3. 将前端仓库的 master 分支(自己选择哪个分支)合并到后端仓库 @@ -61,7 +61,7 @@ tags: git merge --strategy ours --no-commit frontend/master ``` - ![202203252252929](../../../../public/img/2022/03/202203252252929.png) + ![202203252252929](../../../../../public/img/2022/03/25/202203252252929.png) 想法很美,但是报错了: @@ -75,7 +75,7 @@ tags: git merge --strategy ours --allow-unrelated-histories --no-commit frontend/master ``` - ![202203252252931](../../../../public/img/2022/03/202203252252931.png) + ![202203252252931](../../../../../public/img/2022/03/25/202203252252931.png) 4. 将前端仓库的 master 分支内容放到在后端仓库内刚建好的 eladminx-web 文件夹中 diff --git a/repos/categories/fragments/2022/03/26.修改Git最后一次提交记录的作者和邮箱.md b/repos/categories/fragments/2022/03/26/修改Git最后一次提交记录的作者和邮箱.md similarity index 100% rename from repos/categories/fragments/2022/03/26.修改Git最后一次提交记录的作者和邮箱.md rename to repos/categories/fragments/2022/03/26/修改Git最后一次提交记录的作者和邮箱.md diff --git a/repos/categories/fragments/2022/03/27.修改Git所有提交记录中的作者和邮箱.md b/repos/categories/fragments/2022/03/27/修改Git所有提交记录中的作者和邮箱.md similarity index 100% rename from repos/categories/fragments/2022/03/27.修改Git所有提交记录中的作者和邮箱.md rename to repos/categories/fragments/2022/03/27/修改Git所有提交记录中的作者和邮箱.md diff --git a/repos/categories/issues/2021/12/01.F盘上的回收站已损坏。是否清空该驱动器上的回收站.md b/repos/categories/issues/2021/12/01/F盘上的回收站已损坏。是否清空该驱动器上的回收站.md similarity index 91% rename from repos/categories/issues/2021/12/01.F盘上的回收站已损坏。是否清空该驱动器上的回收站.md rename to repos/categories/issues/2021/12/01/F盘上的回收站已损坏。是否清空该驱动器上的回收站.md index 39ca8ded3..26966a342 100644 --- a/repos/categories/issues/2021/12/01.F盘上的回收站已损坏。是否清空该驱动器上的回收站.md +++ b/repos/categories/issues/2021/12/01/F盘上的回收站已损坏。是否清空该驱动器上的回收站.md @@ -14,7 +14,7 @@ tags: 近期打开移动硬盘时,经常弹出一个提示框,提示内容是:**F:\ 上的"回收站"已损坏。是否清空该驱动器上的"回收站"?** -![202112012236800](../../../../public/img/2021/12/202112012236800.png) +![202112012236800](../../../../../public/img/2021/12/01/202112012236800.png) 这个提示框出现过好多回了,除了第一次见到时担心数据丢失,所以比较重视,后来次数多了,点过 “是”,也点过 “否”,只要当下不再影响我就先忽略了。 @@ -38,7 +38,7 @@ tags: 我又考虑是不是电脑本次出了点故障,于是我重启了电脑。 -![202112012236805](../../../../public/img/2021/12/202112012236805.jpeg) +![202112012236805](../../../../../public/img/2021/12/01/202112012236805.jpeg) 果然,问题还是没解决了。 @@ -66,6 +66,6 @@ tags: rd /s f:\$RECYCLE.BIN ``` -![202112012236810](../../../../public/img/2021/12/202112012236810.png) +![202112012236810](../../../../../public/img/2021/12/01/202112012236810.png) 问题解决了。 diff --git a/repos/categories/issues/2021/12/08.for循环中删除集合元素隐藏的陷阱.md b/repos/categories/issues/2021/12/08/for循环中删除集合元素隐藏的陷阱.md similarity index 100% rename from repos/categories/issues/2021/12/08.for循环中删除集合元素隐藏的陷阱.md rename to repos/categories/issues/2021/12/08/for循环中删除集合元素隐藏的陷阱.md diff --git a/repos/categories/issues/2021/12/10.Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md b/repos/categories/issues/2021/12/10/Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md similarity index 91% rename from repos/categories/issues/2021/12/10.Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md rename to repos/categories/issues/2021/12/10/Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md index 326af9bb9..9416dc56e 100644 --- a/repos/categories/issues/2021/12/10.Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md +++ b/repos/categories/issues/2021/12/10/Command line is too long. Shorten command line for XXX or also for Spring Boot default configuration.md @@ -17,7 +17,7 @@ tags: 结果,刚握住水杯,就看到 IntelliJ IDEA 在左下角弹出了一个错误提示框,如下: -![202112102211700](../../../../public/img/2021/12/202112102211700.jpg) +![202112102211700](../../../../../public/img/2021/12/10/202112102211700.jpg) 看提示的意思是命令行太长了,让缩短一下命令行。又点了两下【Debug】运行按钮,依然不依不饶的弹出这个提示,那就放下水杯解决吧。 @@ -46,7 +46,7 @@ tags: 双击打开项目根目录下的 `.idea` 目录,这个目录下都是 IntelliJ IDEA 自动保存的项目配置内容,一般情况下我们不需要关注它,但这次我们需要找到其中的 `workspace.xml` 配置文件,手动修改一下配置。 -![202112102211705](../../../../public/img/2021/12/202112102211705.png) +![202112102211705](../../../../../public/img/2021/12/10/202112102211705.png) 按下 【Ctrl + F】,在弹出的搜索框中,输入【PropertiesComponent】回车,定位到该项配置后,在其所在的 `` 标签内最后部分添加一条属性配置,如下: @@ -54,6 +54,6 @@ tags: ``` -![202112102211710](../../../../public/img/2021/12/202112102211710.png) +![202112102211710](../../../../../public/img/2021/12/10/202112102211710.png) 添加完后,关闭该配置文件即可,再次点击【Debug】运行按钮,项目正常启动了,笔者也该去接水了。 \ No newline at end of file diff --git a/repos/categories/issues/2021/12/11.SQL 注入攻击风险.md b/repos/categories/issues/2021/12/11/SQL 注入攻击风险.md similarity index 100% rename from repos/categories/issues/2021/12/11.SQL 注入攻击风险.md rename to repos/categories/issues/2021/12/11/SQL 注入攻击风险.md diff --git a/repos/categories/issues/2021/12/13.无法访问F盘。文件或目录损坏且无法读取.md b/repos/categories/issues/2021/12/13/无法访问F盘。文件或目录损坏且无法读取.md similarity index 74% rename from repos/categories/issues/2021/12/13.无法访问F盘。文件或目录损坏且无法读取.md rename to repos/categories/issues/2021/12/13/无法访问F盘。文件或目录损坏且无法读取.md index 5684dd902..6ce3330ff 100644 --- a/repos/categories/issues/2021/12/13.无法访问F盘。文件或目录损坏且无法读取.md +++ b/repos/categories/issues/2021/12/13/无法访问F盘。文件或目录损坏且无法读取.md @@ -18,7 +18,7 @@ tags: 不过好在最后问题解决了,跟笔者来一起看看解决方法吧。 -![202112132257200](../../../../public/img/2021/12/202112132257200.png) +![202112132257200](../../../../../public/img/2021/12/13/202112132257200.png) ## 解决方案 @@ -26,15 +26,15 @@ tags: 首先,在出现问题的磁盘上【右键】单击,然后选择【属性】。 -![202112132257205](../../../../public/img/2021/12/202112132257205.png) +![202112132257205](../../../../../public/img/2021/12/13/202112132257205.png) 在弹出的【属性】对话框中,选择【工具】选项卡,然后点击【检查】按钮。这个功能是用来检查磁盘文件系统错误的,检查完还会有个错误修复的环节。 -![202112132257210](../../../../public/img/2021/12/202112132257210.png) +![202112132257210](../../../../../public/img/2021/12/13/202112132257210.png) 可惜的是,不知道是笔者这台电脑登录的账号权限问题,还是系统错误,这项修复手段,笔者用不了。 -![202112132257215](../../../../public/img/2021/12/202112132257215.png) +![202112132257215](../../../../../public/img/2021/12/13/202112132257215.png) ### 尝试2:命令行修复 @@ -42,7 +42,7 @@ tags: 按下【Windows】键,弹出【开始】菜单,直接输入【cmd】来在菜单中搜索。搜索出来后,在【cmd.exe/命令行】上【右键】单击,选择【以管理员身份运行】。 -![202112132257220](../../../../public/img/2021/12/202112132257220.png) +![202112132257220](../../../../../public/img/2021/12/13/202112132257220.png) 在弹出的 CMD 命令行窗口中,输入以下命令: @@ -51,10 +51,10 @@ tags: chkdsk f: /f ``` -![202112132257225](../../../../public/img/2021/12/202112132257225.png) +![202112132257225](../../../../../public/img/2021/12/13/202112132257225.png) -![202112132257230](../../../../public/img/2021/12/202112132257230.png) +![202112132257230](../../../../../public/img/2021/12/13/202112132257230.png) 等待检查修复结束,笔者的 F 盘又回来了。 -![202112132257235](../../../../public/img/2021/12/202112132257235.png) \ No newline at end of file +![202112132257235](../../../../../public/img/2021/12/13/202112132257235.png) \ No newline at end of file diff --git a/repos/categories/issues/2022/01/26.JavaScript 无法存储 Java Long 类型数据问题.md b/repos/categories/issues/2022/01/26/JavaScript 无法存储 Java Long 类型数据问题.md similarity index 96% rename from repos/categories/issues/2022/01/26.JavaScript 无法存储 Java Long 类型数据问题.md rename to repos/categories/issues/2022/01/26/JavaScript 无法存储 Java Long 类型数据问题.md index 8c0f920a9..909be9c19 100644 --- a/repos/categories/issues/2022/01/26.JavaScript 无法存储 Java Long 类型数据问题.md +++ b/repos/categories/issues/2022/01/26/JavaScript 无法存储 Java Long 类型数据问题.md @@ -66,7 +66,7 @@ tags: 在前端表单中的展示效果大概如下: -![202201260941889](../../../../public/img/2022/01/202201260941889.png) +![202201260941889](../../../../../public/img/2022/01/26/202201260941889.png) ## 原因分析 @@ -78,7 +78,7 @@ tags: 最终,配合前端开发定位这个问题的原因是因为: JavaScript 中无法存储 Java 中的 Long 类型数据,当位数超过 JavaScript 整数存储的范围,就会以0来代替了。 -![202201260942561](../../../../public/img/2022/01/202201260942561.png) +![202201260942561](../../../../../public/img/2022/01/26/202201260942561.png) ## 解决方案 diff --git a/repos/categories/issues/2022/03/24.创建一个自身类的静态对象变量,究竟会如何执行?.md b/repos/categories/issues/2022/03/24/创建一个自身类的静态对象变量,究竟会如何执行?.md similarity index 100% rename from repos/categories/issues/2022/03/24.创建一个自身类的静态对象变量,究竟会如何执行?.md rename to repos/categories/issues/2022/03/24/创建一个自身类的静态对象变量,究竟会如何执行?.md diff --git a/repos/categories/solutions/2021/11/18.用Java8获取近N天日期.md b/repos/categories/solutions/2021/11/18/用Java8获取近N天日期.md similarity index 100% rename from repos/categories/solutions/2021/11/18.用Java8获取近N天日期.md rename to repos/categories/solutions/2021/11/18/用Java8获取近N天日期.md diff --git a/repos/categories/solutions/2021/11/22.一条SQL查询今年每月统计信息.md b/repos/categories/solutions/2021/11/22/一条SQL查询今年每月统计信息.md similarity index 100% rename from repos/categories/solutions/2021/11/22.一条SQL查询今年每月统计信息.md rename to repos/categories/solutions/2021/11/22/一条SQL查询今年每月统计信息.md diff --git a/repos/courses/mybatis/01.MyBatis基础/01.快速入门.md b/repos/courses/mybatis/01-MyBatis基础/01-快速入门.md similarity index 96% rename from repos/courses/mybatis/01.MyBatis基础/01.快速入门.md rename to repos/courses/mybatis/01-MyBatis基础/01-快速入门.md index 304d6fb97..6d47bfa6d 100644 --- a/repos/courses/mybatis/01.MyBatis基础/01.快速入门.md +++ b/repos/courses/mybatis/01-MyBatis基础/01-快速入门.md @@ -64,15 +64,15 @@ INSERT INTO `user` VALUES (5, 'Billie', 24, 'Billie@126.com'); 要使用 MyBatis 框架,第一步就是下载好 MyBatis 的 jar 包,我们可以从 [MyBatis](https://github.com/mybatis/mybatis-3/releases) 在 GitHub 上的开源地址下载。 -![202111232222518](../../../public/img/2021/11/202111232222518.png) +![202012252222518](../../../public/img/2020/12/25/202012252222518.png) 笔者下载了 MyBatis 的核心压缩包(mybatis-x.x.x.zip)及其源码包(mybatis-x-mybatis-x.x.x.zip)。 -![202111232222812](../../../public/img/2021/11/202111232222812.png) +![202012252222738](../../../public/img/2020/12/25/202012252222738.png) 解压开 **mybatis-3.5.6.zip** 压缩包,目录结构如下: -![202111232222738](../../../public/img/2021/11/202111232222738.png) +![202012252222812](../../../public/img/2020/12/25/202012252222812.png) ::: tip 笔者说 如果 GitHub 下载太慢,可以前往 [FastGit](https://hub.fastgit.org/mybatis/mybatis-3/releases/tag/mybatis-3.5.6) 进行下载,它是 GitHub 的镜像地址,网站界面等各方面与 GitHub 几乎一模一样。 @@ -83,7 +83,7 @@ INSERT INTO `user` VALUES (5, 'Billie', 24, 'Billie@126.com'); 下载好依赖之后,我们通过 Eclipse,创建一个动态 Web 项目,并将刚才下载的 jar 包和指定数据库驱动包添加到 WebConent\WEB-INF\lib 目录,效果如下: -![202111232223708](../../../public/img/2021/11/202111232223708.png) +![202012252223067](../../../public/img/2020/12/25/202012252223067.png) ::: tip 笔者说 本次我们不会使用到 Servlet API,所以创建一个普通 Java 工程也没问题。 @@ -202,7 +202,7 @@ log4j.appender.CONSOLE.layout.ConversionPattern=[demo] %d{yyyy-MM-dd HH:mm:ss,SS 当一切准备好之后,完整的项目目录结构如下: -![202111232223067](../../../public/img/2021/11/202111232223067.png) +![202012252223708](../../../public/img/2020/12/25/202012252223708.png) 创建好一个单元测试类,测试一下: diff --git a/repos/courses/mybatis/01.MyBatis基础/02.核心对象.md b/repos/courses/mybatis/01-MyBatis基础/02-核心对象.md similarity index 98% rename from repos/courses/mybatis/01.MyBatis基础/02.核心对象.md rename to repos/courses/mybatis/01-MyBatis基础/02-核心对象.md index d43c0d776..2631e3ae0 100644 --- a/repos/courses/mybatis/01.MyBatis基础/02.核心对象.md +++ b/repos/courses/mybatis/01-MyBatis基础/02-核心对象.md @@ -17,7 +17,7 @@ tags: 在 API 使用层面,MyBatis 的核心类型有三个,分别是:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。 -![202111242243280](../../../public/img/2021/11/202111242243280.png) +![202012252243280](../../../public/img/2020/12/25/202012252243280.png) ## SqlSessionFactoryBuilder @@ -179,8 +179,6 @@ void testSelectList() throws IOException { } ``` -![202111242245992](../../../public/img/2021/11/202111242245992.jpg) - ::: info 笔者说 对于技术的学习,笔者一贯遵循的步骤是:先用最最简单的 demo 让它跑起来,然后学学它的最最常用 API 和 配置让自己能用起来,最后熟练使用的基础上,在空闲时尝试阅读它的源码让自己能够洞彻它的运行机制,部分问题出现的原因,同时借鉴这些技术实现来提升自己的代码高度。 所以在笔者的文章中,前期基本都是小白文,仅仅穿插很少量的源码研究。当然等小白文更新多了,你们还依然喜欢,后期会不定时专门对部分技术的源码进行解析。 diff --git a/repos/courses/mybatis/01.MyBatis基础/03.核心配置文件.md b/repos/courses/mybatis/01-MyBatis基础/03-核心配置文件.md similarity index 98% rename from repos/courses/mybatis/01.MyBatis基础/03.核心配置文件.md rename to repos/courses/mybatis/01-MyBatis基础/03-核心配置文件.md index 492d0b5af..fa2a29344 100644 --- a/repos/courses/mybatis/01.MyBatis基础/03.核心配置文件.md +++ b/repos/courses/mybatis/01-MyBatis基础/03-核心配置文件.md @@ -38,7 +38,7 @@ configuration 根节点 ::: tip 笔者说 这些标签在使用时一定要注意标签的顺序和允许使用次数。Eclipse 中可以通过在标签上按 F2 查看该标签下的内容模型,即标签的顺序和允许使用次数。你看下图中画圈处就是各个标签的顺序,后面的 ?号 代表指定标签最多允许使用一次。 ::: -![202111242251170](../../../public/img/2021/11/202111242251170.png) +![202012262251170](../../../public/img/2020/12/26/202012262251170.png) ## properties元素 @@ -352,7 +352,7 @@ mappers 元素的作用就是用来告诉 MyBatis 去哪找我们编写的 SQL ### 指定映射文件 -这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01.快速入门) 中使用的就是属于这类方式。它有两种实现: +这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01-快速入门) 中使用的就是属于这类方式。它有两种实现: ```xml @@ -395,7 +395,7 @@ public interface UserMapper { } ``` -![202111242252221](../../../public/img/2021/11/202111242252221.png) +![202012262252221](../../../public/img/2020/12/26/202012262252221.png) **第二步:将 SQL 映射文件的 namespace 值改为对应 Mapper 接口的全限定类名。** diff --git a/repos/courses/mybatis/index.md b/repos/courses/mybatis/index.md index e322fe51c..cdde01a6c 100644 --- a/repos/courses/mybatis/index.md +++ b/repos/courses/mybatis/index.md @@ -72,7 +72,7 @@ public class UserDaoImpl extends BaseDao implements UserDao { 有问题存在,就不缺解决问题的人。在行业内随之诞生了大量的持久层解决方案,除了各自公司自研的方案之外,比较有名的通用开源方案有:Hibernate、MyBatis等,各有各的优劣势,在此我先不谈论它们的区别,只说一个现象:在国内来讲MyBatis应用相对广泛。 -![202111232219533](../../public/img/2021/11/202111232219533.png) +![202012252219533](../../public/img/2020/12/25/202012252219533.png) 所以那没什么好说的了,直接学吧? @@ -86,14 +86,14 @@ MyBatis读音是:[mai'bətɪs](买杯涕死),原是 Apache 软件基金会 MyBatis 是一款优秀的 **半自动的持久层ORM框架** ,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 当前,最新版本是MyBatis 3.5.6 ,其发布时间是2020年10月6日。[1] -![202111232221059](../../public/img/2021/11/202111232221059.png) +![202012252221059](../../public/img/2020/12/25/202012252221059.png) ::: ::: details **1.什么是 ORM ?** [2] ORM,对象关系映射(Object Relation Mapping,简称ORM,或O/RM,或O/R Mapping),它是随着面向对象的软件开发方法发展而产生的。 面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射( ORM )系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。 -![202111232221734](../../public/img/2021/11/202111232221734.png) +![202012252221734](../../public/img/2020/12/25/202012252221734.png) 面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。 diff --git a/repos/public/img/2021/11/202111232219533.png b/repos/public/img/2020/12/25/202012252219533.png similarity index 100% rename from repos/public/img/2021/11/202111232219533.png rename to repos/public/img/2020/12/25/202012252219533.png diff --git a/repos/public/img/2021/11/202111232221059.png b/repos/public/img/2020/12/25/202012252221059.png similarity index 100% rename from repos/public/img/2021/11/202111232221059.png rename to repos/public/img/2020/12/25/202012252221059.png diff --git a/repos/public/img/2021/11/202111232221734.png b/repos/public/img/2020/12/25/202012252221734.png similarity index 100% rename from repos/public/img/2021/11/202111232221734.png rename to repos/public/img/2020/12/25/202012252221734.png diff --git a/repos/public/img/2021/11/202111232222518.png b/repos/public/img/2020/12/25/202012252222518.png similarity index 100% rename from repos/public/img/2021/11/202111232222518.png rename to repos/public/img/2020/12/25/202012252222518.png diff --git a/repos/public/img/2021/11/202111232222812.png b/repos/public/img/2020/12/25/202012252222738.png similarity index 100% rename from repos/public/img/2021/11/202111232222812.png rename to repos/public/img/2020/12/25/202012252222738.png diff --git a/repos/public/img/2021/11/202111232222738.png b/repos/public/img/2020/12/25/202012252222812.png similarity index 100% rename from repos/public/img/2021/11/202111232222738.png rename to repos/public/img/2020/12/25/202012252222812.png diff --git a/repos/public/img/2021/11/202111232223708.png b/repos/public/img/2020/12/25/202012252223067.png similarity index 100% rename from repos/public/img/2021/11/202111232223708.png rename to repos/public/img/2020/12/25/202012252223067.png diff --git a/repos/public/img/2021/11/202111232223067.png b/repos/public/img/2020/12/25/202012252223708.png similarity index 100% rename from repos/public/img/2021/11/202111232223067.png rename to repos/public/img/2020/12/25/202012252223708.png diff --git a/repos/public/img/2021/11/202111242243280.png b/repos/public/img/2020/12/25/202012252243280.png similarity index 100% rename from repos/public/img/2021/11/202111242243280.png rename to repos/public/img/2020/12/25/202012252243280.png diff --git a/repos/public/img/2021/11/202111242251170.png b/repos/public/img/2020/12/26/202012262251170.png similarity index 100% rename from repos/public/img/2021/11/202111242251170.png rename to repos/public/img/2020/12/26/202012262251170.png diff --git a/repos/public/img/2021/11/202111242252221.png b/repos/public/img/2020/12/26/202012262252221.png similarity index 100% rename from repos/public/img/2021/11/202111242252221.png rename to repos/public/img/2020/12/26/202012262252221.png diff --git a/repos/public/img/2021/11/202111242245992.jpg b/repos/public/img/2021/11/202111242245992.jpg deleted file mode 100644 index 09700552c90f3f758e06926f943b7dfd7d85896e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16630 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 diff --git a/repos/public/img/2021/12/202112012236800.png b/repos/public/img/2021/12/01/202112012236800.png similarity index 100% rename from repos/public/img/2021/12/202112012236800.png rename to repos/public/img/2021/12/01/202112012236800.png diff --git a/repos/public/img/2021/12/202112012236805.jpeg b/repos/public/img/2021/12/01/202112012236805.jpeg similarity index 100% rename from repos/public/img/2021/12/202112012236805.jpeg rename to repos/public/img/2021/12/01/202112012236805.jpeg diff --git a/repos/public/img/2021/12/202112012236810.png b/repos/public/img/2021/12/01/202112012236810.png similarity index 100% rename from repos/public/img/2021/12/202112012236810.png rename to repos/public/img/2021/12/01/202112012236810.png diff --git a/repos/public/img/2021/12/202112102211700.jpg b/repos/public/img/2021/12/10/202112102211700.jpg similarity index 100% rename from repos/public/img/2021/12/202112102211700.jpg rename to repos/public/img/2021/12/10/202112102211700.jpg diff --git a/repos/public/img/2021/12/202112102211705.png b/repos/public/img/2021/12/10/202112102211705.png similarity index 100% rename from repos/public/img/2021/12/202112102211705.png rename to repos/public/img/2021/12/10/202112102211705.png diff --git a/repos/public/img/2021/12/202112102211710.png b/repos/public/img/2021/12/10/202112102211710.png similarity index 100% rename from repos/public/img/2021/12/202112102211710.png rename to repos/public/img/2021/12/10/202112102211710.png diff --git a/repos/public/img/2021/12/202112132257200.png b/repos/public/img/2021/12/13/202112132257200.png similarity index 100% rename from repos/public/img/2021/12/202112132257200.png rename to repos/public/img/2021/12/13/202112132257200.png diff --git a/repos/public/img/2021/12/202112132257205.png b/repos/public/img/2021/12/13/202112132257205.png similarity index 100% rename from repos/public/img/2021/12/202112132257205.png rename to repos/public/img/2021/12/13/202112132257205.png diff --git a/repos/public/img/2021/12/202112132257210.png b/repos/public/img/2021/12/13/202112132257210.png similarity index 100% rename from repos/public/img/2021/12/202112132257210.png rename to repos/public/img/2021/12/13/202112132257210.png diff --git a/repos/public/img/2021/12/202112132257215.png b/repos/public/img/2021/12/13/202112132257215.png similarity index 100% rename from repos/public/img/2021/12/202112132257215.png rename to repos/public/img/2021/12/13/202112132257215.png diff --git a/repos/public/img/2021/12/202112132257220.png b/repos/public/img/2021/12/13/202112132257220.png similarity index 100% rename from repos/public/img/2021/12/202112132257220.png rename to repos/public/img/2021/12/13/202112132257220.png diff --git a/repos/public/img/2021/12/202112132257225.png b/repos/public/img/2021/12/13/202112132257225.png similarity index 100% rename from repos/public/img/2021/12/202112132257225.png rename to repos/public/img/2021/12/13/202112132257225.png diff --git a/repos/public/img/2021/12/202112132257230.png b/repos/public/img/2021/12/13/202112132257230.png similarity index 100% rename from repos/public/img/2021/12/202112132257230.png rename to repos/public/img/2021/12/13/202112132257230.png diff --git a/repos/public/img/2021/12/202112132257235.png b/repos/public/img/2021/12/13/202112132257235.png similarity index 100% rename from repos/public/img/2021/12/202112132257235.png rename to repos/public/img/2021/12/13/202112132257235.png diff --git a/repos/public/img/2022/01/202201260941889.png b/repos/public/img/2022/01/26/202201260941889.png similarity index 100% rename from repos/public/img/2022/01/202201260941889.png rename to repos/public/img/2022/01/26/202201260941889.png diff --git a/repos/public/img/2022/01/202201260942561.png b/repos/public/img/2022/01/26/202201260942561.png similarity index 100% rename from repos/public/img/2022/01/202201260942561.png rename to repos/public/img/2022/01/26/202201260942561.png diff --git a/repos/public/img/2022/03/202203252252923.png b/repos/public/img/2022/03/25/202203252252923.png similarity index 100% rename from repos/public/img/2022/03/202203252252923.png rename to repos/public/img/2022/03/25/202203252252923.png diff --git a/repos/public/img/2022/03/202203252252926.png b/repos/public/img/2022/03/25/202203252252926.png similarity index 100% rename from repos/public/img/2022/03/202203252252926.png rename to repos/public/img/2022/03/25/202203252252926.png diff --git a/repos/public/img/2022/03/202203252252929.png b/repos/public/img/2022/03/25/202203252252929.png similarity index 100% rename from repos/public/img/2022/03/202203252252929.png rename to repos/public/img/2022/03/25/202203252252929.png diff --git a/repos/public/img/2022/03/202203252252931.png b/repos/public/img/2022/03/25/202203252252931.png similarity index 100% rename from repos/public/img/2022/03/202203252252931.png rename to repos/public/img/2022/03/25/202203252252931.png