1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

chore: update

This commit is contained in:
Mr.Hope 2023-04-28 17:18:52 +08:00
parent 2975f2f244
commit 893c673f1c
7 changed files with 46 additions and 44 deletions

View File

@ -48,23 +48,23 @@ Mybatis 版本 3.3.0,亲测如下:
*/ */
public interface StuMapper { public interface StuMapper {
List<Student> getAllStu(); List<Student> getAllStu();
List<Student> getAllStu(@Param("id") Integer id); List<Student> getAllStu(@Param("id") Integer id);
} }
``` ```
然后在 `StuMapper.xml` 中利用 Mybatis 的动态 sql 就可以实现。 然后在 `StuMapper.xml` 中利用 Mybatis 的动态 sql 就可以实现。
```java ```xml
<select id="getAllStu" resultType="com.pojo.Student"> <select id="getAllStu" resultType="com.pojo.Student">
select * from student select * from student
<where> <where>
<if test="id != null"> <if test="id != null">
id = #{id} id = #{id}
</if> </if>
</where> </where>
</select> </select>
``` ```
能正常运行,并能得到相应的结果,这样就实现了在 Dao 接口中写重载方法。 能正常运行,并能得到相应的结果,这样就实现了在 Dao 接口中写重载方法。
@ -160,7 +160,7 @@ public V get(Object key) {
举例: `select _ from student` ,拦截 sql 后重写为: `select t._ from select \* from studentt limit 010` 举例: `select _ from student` ,拦截 sql 后重写为: `select t._ from select \* from studentt limit 010`
### 简述 MyBatis 的插件运行原理,以及如何编写一个插件 ### 简述 MyBatis 的插件运行原理,以及如何编写一个插件
注:我出的。 注:我出的。
@ -200,7 +200,7 @@ MyBatis 提供了 9 种动态 sql 标签:
有了列名与属性名的映射关系后MyBatis 通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。 有了列名与属性名的映射关系后MyBatis 通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。
### MyBatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别 ### MyBatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
注:我出的。 注:我出的。

View File

@ -11,7 +11,7 @@ head:
content: 消息推送通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备 APP 进行的主动消息推送。 content: 消息推送通常是指网站的运营工作等人员,通过某种工具对用户当前网页或移动设备 APP 进行的主动消息推送。
--- ---
> 原文地址https://juejin.cn/post/7122014462181113887JavaGuide 对本文进行了完善总结。 > 原文地址:<https://juejin.cn/post/7122014462181113887JavaGuide> 对本文进行了完善总结。
我有一个朋友做了一个小破站,现在要实现一个站内信 Web 消息推送的功能,对,就是下图这个小红点,一个很常用的功能。 我有一个朋友做了一个小破站,现在要实现一个站内信 Web 消息推送的功能,对,就是下图这个小红点,一个很常用的功能。

View File

@ -196,7 +196,7 @@ mysql/mysql-server Optimized MySQL Server Docker images. Create
```bash ```bash
docker version # 查看docker版本 docker version # 查看docker版本
docker images # 查看所有已下载镜像等价于docker image ls 命令 docker images # 查看所有已下载镜像等价于docker image ls 命令
docker container ls # 查看所有容器 docker container ls # 查看所有容器
docker ps #查看正在运行的容器 docker ps #查看正在运行的容器
docker image prune # 清理临时的、没有被使用的镜像文件。-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件; docker image prune # 清理临时的、没有被使用的镜像文件。-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;
``` ```
@ -213,7 +213,7 @@ docker image ls # 查看所有已下载镜像
比如我们要删除我们下载的 mysql 镜像。 比如我们要删除我们下载的 mysql 镜像。
通过 `docker rmi [image]` (等价于`docker image rm [image]`)删除镜像之前首先要确保这个镜像没有被容器引用(可以通过标签名称或者镜像 ID 删除)。通过我们前面讲的` docker ps`命令即可查看。 通过 `docker rmi [image]` (等价于`docker image rm [image]`)删除镜像之前首先要确保这个镜像没有被容器引用(可以通过标签名称或者镜像 ID 删除)。通过我们前面讲的`docker ps`命令即可查看。
```shell ```shell
➜ ~ docker ps ➜ ~ docker ps
@ -273,11 +273,11 @@ LXC 技术主要是借助 Linux 内核中提供的 CGroup 功能和 namespace
- **namespace 是 Linux 内核用来隔离内核资源的方式。** 通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。 - **namespace 是 Linux 内核用来隔离内核资源的方式。** 通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的资源,这两拨进程根本就感觉不到对方的存在。具体的实现方式是把一个或多个进程的相关资源指定在同一个 namespace 中。Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。
(以上关于 namespace 介绍内容来自https://www.cnblogs.com/sparkdev/p/9365405.html ,更多关于 namespace 的呢内容可以查看这篇文章 )。 (以上关于 namespace 介绍内容来自<https://www.cnblogs.com/sparkdev/p/9365405.html> ,更多关于 namespace 的呢内容可以查看这篇文章 )。
- **CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制。** - **CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory i/o 等等) 的机制。**
(以上关于 CGroup 介绍内容来自 https://www.ibm.com/developerworks/cn/linux/1506_cgroup/index.html ,更多关于 CGroup 的内容可以查看这篇文章 )。 (以上关于 CGroup 介绍内容来自 <https://www.ibm.com/developerworks/cn/linux/1506_cgroup/index.html> ,更多关于 CGroup 的内容可以查看这篇文章 )。
**cgroup 和 namespace 两者对比:** **cgroup 和 namespace 两者对比:**

View File

@ -121,11 +121,13 @@ Git 有三种状态,你的文件可能处于其中之一:
一个好的 Git 提交消息如下: 一个好的 Git 提交消息如下:
标题行:用这一行来描述和解释你的这次提交 ```
标题行:用这一行来描述和解释你的这次提交
主体部分可以是很少的几行,来加入更多的细节来解释提交,最好是能给出一些相关的背景或者解释这个提交能修复和解决什么问题。 主体部分可以是很少的几行,来加入更多的细节来解释提交,最好是能给出一些相关的背景或者解释这个提交能修复和解决什么问题。
主体部分当然也可以有几段,但是一定要注意换行和句子不要太长。因为这样在使用 "git log" 的时候会有缩进比较好看。 主体部分当然也可以有几段,但是一定要注意换行和句子不要太长。因为这样在使用 "git log" 的时候会有缩进比较好看。
```
提交的标题行描述应该尽量的清晰和尽量的一句话概括。这样就方便相关的 Git 日志查看工具显示和其他人的阅读。 提交的标题行描述应该尽量的清晰和尽量的一句话概括。这样就方便相关的 Git 日志查看工具显示和其他人的阅读。
@ -234,11 +236,11 @@ git push origin
**在线演示学习工具:** **在线演示学习工具:**
「补充,来自[issue729](https://github.com/Snailclimb/JavaGuide/issues/729)」Learn Git Branching https://oschina.gitee.io/learn-git-branching/ 。该网站可以方便的演示基本的 git 操作,讲解得明明白白。每一个基本命令的作用和结果。 「补充,来自[issue729](https://github.com/Snailclimb/JavaGuide/issues/729)」Learn Git Branching <https://oschina.gitee.io/learn-git-branching/> 。该网站可以方便的演示基本的 git 操作,讲解得明明白白。每一个基本命令的作用和结果。
**推荐阅读:** **推荐阅读:**
- [Git 入门图文教程(1.5W 字 40 图) ](https://www.cnblogs.com/anding/p/16987769.html):超用心的一篇文章,内容全面且附带详细的图解,强烈推荐! - [Git 入门图文教程(1.5W 字 40 图)](https://www.cnblogs.com/anding/p/16987769.html):超用心的一篇文章,内容全面且附带详细的图解,强烈推荐!
- [Git - 简明指南](https://rogerdudler.github.io/git-guide/index.zh.html):涵盖 Git 常见操作,非常清晰。 - [Git - 简明指南](https://rogerdudler.github.io/git-guide/index.zh.html):涵盖 Git 常见操作,非常清晰。
- [图解 Git](https://marklodato.github.io/visual-git-guide/index-zh-cn.html):图解 Git 中的最常用命令。如果你稍微理解 git 的工作原理,这篇文章能够让你理解的更透彻。 - [图解 Git](https://marklodato.github.io/visual-git-guide/index-zh-cn.html):图解 Git 中的最常用命令。如果你稍微理解 git 的工作原理,这篇文章能够让你理解的更透彻。
- [猴子都能懂得 Git 入门](https://backlog.com/git-tutorial/cn/intro/intro1_1.html) :有趣的讲解。 - [猴子都能懂得 Git 入门](https://backlog.com/git-tutorial/cn/intro/intro1_1.html) :有趣的讲解。

View File

@ -17,7 +17,7 @@ tag:
![Github简历](https://oss.javaguide.cn/2020-11/image-20201108192205620.png) ![Github简历](https://oss.javaguide.cn/2020-11/image-20201108192205620.png)
通过 https://www.githubtrends.io/wrapped 这个网站,你可以生成一份 Github 个人年报,这个年报会列举出你在这一年的项目贡献情况、最常使用的编程语言、详细的贡献信息。 通过 <https://www.githubtrends.io/wrapped> 这个网站,你可以生成一份 Github 个人年报,这个年报会列举出你在这一年的项目贡献情况、最常使用的编程语言、详细的贡献信息。
![](https://oss.javaguide.cn/github/dootask/image-20211226144607457.png) ![](https://oss.javaguide.cn/github/dootask/image-20211226144607457.png)
@ -59,13 +59,13 @@ Github 目前支持在个人主页自定义展示一些内容。展示效果如
![](https://oss.javaguide.cn/github/dootask/repobeats.png) ![](https://oss.javaguide.cn/github/dootask/repobeats.png)
地址https://repobeats.axiom.co/ 。 地址:<https://repobeats.axiom.co/>
## Github 表情 ## Github 表情
![Github表情](https://oss.javaguide.cn/2020-11/image-20201107162254582.png) ![Github表情](https://oss.javaguide.cn/2020-11/image-20201107162254582.png)
如果你想要在 Github 使用表情的话,可以在这里找找 [www.webfx.com/tools/emoji-cheat-sheet/ ](www.webfx.com/tools/emoji-cheat-sheet/)。 如果你想要在 Github 使用表情的话,可以在这里找找 [www.webfx.com/tools/emoji-cheat-sheet/](https://www.webfx.com/tools/emoji-cheat-sheet/)。
![在线Github表情](https://oss.javaguide.cn/2020-11/image-20201107162432941.png) ![在线Github表情](https://oss.javaguide.cn/2020-11/image-20201107162432941.png)

View File

@ -129,7 +129,7 @@ zipStorePath=wrapper/dists
下面的命令会将 Gradle 版本升级为 7.6。 下面的命令会将 Gradle 版本升级为 7.6。
```shell ```shell
$ gradlew wrapper --gradle-version 7.6 gradlew wrapper --gradle-version 7.6
``` ```
`gradle-wrapper.properties` 文件中的 `distributionUrl` 属性也发生了改变。 `gradle-wrapper.properties` 文件中的 `distributionUrl` 属性也发生了改变。
@ -200,26 +200,26 @@ Task 声明依赖的关键字是`dependsOn`,支持声明一个或多个依赖
```groovy ```groovy
task first { task first {
doLast { doLast {
println "+++++first+++++" println "+++++first+++++"
} }
} }
task second { task second {
doLast { doLast {
println "+++++second+++++" println "+++++second+++++"
} }
} }
// 指定多个 task 依赖 // 指定多个 task 依赖
task print(dependsOn :[second,first]) { task print(dependsOn :[second,first]) {
doLast { doLast {
logger.quiet "指定多个task依赖" logger.quiet "指定多个task依赖"
} }
} }
// 指定一个 task 依赖 // 指定一个 task 依赖
task third(dependsOn : print) { task third(dependsOn : print) {
doLast { doLast {
println '+++++third+++++' println '+++++third+++++'
} }
} }
@ -296,9 +296,9 @@ Gradle 支持单项目和多项目构建。在初始化阶段Gradle 确定哪
## 参考 ## 参考
- Gradle 官方文档https://docs.gradle.org/current/userguide/userguide.html - Gradle 官方文档:<https://docs.gradle.org/current/userguide/userguide.html>
- Gradle 入门教程https://www.imooc.com/wiki/gradlebase - Gradle 入门教程:<https://www.imooc.com/wiki/gradlebase>
- Groovy 快速入门看这篇就够了https://cloud.tencent.com/developer/article/1358357 - Groovy 快速入门看这篇就够了:<https://cloud.tencent.com/developer/article/1358357>
- 【Gradle】Gradle 的生命周期详解https://juejin.cn/post/7067719629874921508 - 【Gradle】Gradle 的生命周期详解:<https://juejin.cn/post/7067719629874921508>
- 手把手带你自定义 Gradle 插件 —— Gradle 系列(2)https://www.cnblogs.com/pengxurui/p/16281537.html - 手把手带你自定义 Gradle 插件 —— Gradle 系列(2)<https://www.cnblogs.com/pengxurui/p/16281537.html>
- Gradle 爬坑指南 -- 理解 Plugin、Task、构建流程https://juejin.cn/post/6889090530593112077 - Gradle 爬坑指南 -- 理解 Plugin、Task、构建流程<https://juejin.cn/post/6889090530593112077>

View File

@ -52,7 +52,7 @@ head:
</dependency> </dependency>
``` ```
你可以在 https://mvnrepository.com/ 这个网站上找到几乎所有可用的构件,如果你的项目使用的是 Maven 作为构建工具,那这个网站你一定会经常接触。 你可以在 <https://mvnrepository.com/> 这个网站上找到几乎所有可用的构件,如果你的项目使用的是 Maven 作为构建工具,那这个网站你一定会经常接触。
![Maven 仓库](https://oss.javaguide.cn/github/javaguide/tools/maven/mvnrepository.com.png) ![Maven 仓库](https://oss.javaguide.cn/github/javaguide/tools/maven/mvnrepository.com.png)
@ -386,7 +386,7 @@ Maven 能够基于 `pom.xml` 所包含的信息,自动生成一个友好的站
## Maven 插件 ## Maven 插件
Maven 本质上是一个插件执行框架,所有的执行过程,都是由一个一个插件独立完成的。像咱们日常使用到的 install、clean、deploy 等命令,其实底层都是一个一个的 Maven 插件。关于 Maven 的核心插件可以参考官方的这篇文档https://maven.apache.org/plugins/index.html 。 Maven 本质上是一个插件执行框架,所有的执行过程,都是由一个一个插件独立完成的。像咱们日常使用到的 install、clean、deploy 等命令,其实底层都是一个一个的 Maven 插件。关于 Maven 的核心插件可以参考官方的这篇文档:<https://maven.apache.org/plugins/index.html>
本地默认插件路径: `${user.home}/.m2/repository/org/apache/maven/plugins` 本地默认插件路径: `${user.home}/.m2/repository/org/apache/maven/plugins`
@ -455,8 +455,8 @@ Maven 插件被分为下面两种类型:
## 参考 ## 参考
- 《Maven 实战》 - 《Maven 实战》
- Introduction to Repositories - Maven 官方文档https://maven.apache.org/guides/introduction/introduction-to-repositories.html - Introduction to Repositories - Maven 官方文档:<https://maven.apache.org/guides/introduction/introduction-to-repositories.html>
- Introduction to the Build Lifecycle - Maven 官方文档https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference - Introduction to the Build Lifecycle - Maven 官方文档:<https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference>
- Maven 依赖范围http://www.mvnbook.com/maven-dependency.html - Maven 依赖范围:<http://www.mvnbook.com/maven-dependency.html>
- 解决 maven 依赖冲突这篇就够了https://www.cnblogs.com/qdhxhz/p/16363532.html - 解决 maven 依赖冲突,这篇就够了!:<https://www.cnblogs.com/qdhxhz/p/16363532.html>
- Multi-Module Project with Mavenhttps://www.baeldung.com/maven-multi-module - Multi-Module Project with Maven<https://www.baeldung.com/maven-multi-module>