-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsearch.xml
More file actions
171 lines (82 loc) · 46.2 KB
/
Copy pathsearch.xml
File metadata and controls
171 lines (82 loc) · 46.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>使用 Git 进行版本管理</title>
<link href="/posts/8256.html"/>
<url>/posts/8256.html</url>
<content type="html"><![CDATA[<h1 id="使用-Git-进行版本管理"><a href="#使用-Git-进行版本管理" class="headerlink" title="使用 Git 进行版本管理"></a>使用 Git 进行版本管理</h1><p><img src="https://gitee.com/section2014/PicGoPictureBed/raw/master/assets/f7246b600c338744a9591cd7530fd9f9d62aa0f8.png" alt="Git"></p><p>Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。<br>Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。<br>Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。</p><h2 id="Git-与-SVN-区别"><a href="#Git-与-SVN-区别" class="headerlink" title="Git 与 SVN 区别"></a>Git 与 SVN 区别</h2><p>Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。</p><p>如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。<br>Git 与 SVN 区别点:</p><ul><li><p><strong>1、Git 是分布式的,SVN 不是</strong>:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。</p></li><li><p><strong>2、Git 把内容按元数据方式存储,而 SVN 是按文件:</strong>所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。</p></li><li><p><strong>3、Git 分支和 SVN 的分支不同:</strong>分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。</p></li><li><p><strong>4、Git 没有一个全局的版本号,而 SVN 有:</strong>目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。</p></li><li><p><strong>5、Git 的内容完整性要优于 SVN:</strong>Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。</p></li></ul><p><img src="https://gitee.com/section2014/PicGoPictureBed/raw/master/assets/0D32F290-80B0-4EA4-9836-CA58E22569B3.jpg" alt="Git 与 SVN 区别"></p><h2 id="Git-本地操作命令"><a href="#Git-本地操作命令" class="headerlink" title="Git 本地操作命令"></a>Git 本地操作命令</h2><pre class="line-numbers language-bash"><code class="language-bash"><span class="token comment" spellcheck="true">## Git 账号信息配置</span><span class="token comment" spellcheck="true">## global </span><span class="token function">git</span> config --global user.name <span class="token string">"xxx"</span> <span class="token function">git</span> config --global user.email <span class="token string">""</span><span class="token comment" spellcheck="true">## local</span><span class="token function">git</span> config user.name <span class="token string">"xxx"</span> <span class="token function">git</span> config user.email <span class="token string">""</span><span class="token comment" spellcheck="true">## 初始化 Git 本地仓库</span><span class="token comment" spellcheck="true"># 初始化当前目录</span><span class="token function">git</span> init<span class="token comment" spellcheck="true"># 初始化指定目录,目录不存在则创建新目录</span><span class="token function">git</span> init newrepo<span class="token comment" spellcheck="true">## 添加文件到 Git 管理</span><span class="token function">git</span> add filename<span class="token comment" spellcheck="true"># 添加当前目录所有文件</span><span class="token function">git</span> add <span class="token keyword">.</span><span class="token comment" spellcheck="true">## 删除</span><span class="token function">git</span> <span class="token function">rm</span> <span class="token function">file</span><span class="token comment" spellcheck="true">## 提交文件到本地仓库</span><span class="token function">git</span> commit -m <span class="token string">"commit msg"</span><span class="token comment" spellcheck="true"># commit 命令的-a选项可将所有被修改或者已删除的且已经被git管理的文档提交到仓库中</span><span class="token comment" spellcheck="true"># 注意:-a不会造成新文件被提交,只能修改</span><span class="token function">git</span> commit -a -m <span class="token string">"Changed some files"</span><span class="token comment" spellcheck="true">## 分支管理</span><span class="token comment" spellcheck="true"># 创建本地分支</span><span class="token comment" spellcheck="true"># branch 命令不会将我们带入分支,只是创建一个新分支</span><span class="token function">git</span> branch <span class="token function">test</span><span class="token comment" spellcheck="true">## 删除本地分支</span><span class="token function">git</span> branch -d <span class="token function">test</span><span class="token comment" spellcheck="true">## 更改我们所在的分支</span><span class="token function">git</span> checkout <span class="token function">test</span><span class="token comment" spellcheck="true"># 第一个分支,或主分支,被称为"master"。</span><span class="token function">git</span> checkout master<span class="token comment" spellcheck="true">## 合并其他分支的更改到主分支</span><span class="token function">git</span> checkout master<span class="token function">git</span> merge <span class="token function">test</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h2 id="Git-远程交互命令"><a href="#Git-远程交互命令" class="headerlink" title="Git 远程交互命令"></a>Git 远程交互命令</h2><pre class="line-numbers language-bash"><code class="language-bash"><span class="token comment" spellcheck="true"># 设置远程主机名</span><span class="token function">git</span> remote add origin https://gitee.com/section2014/notes.git<span class="token comment" spellcheck="true">## 将内容推送到服务器</span><span class="token comment" spellcheck="true"># git push <远程主机名> <本地分支名>:<远程分支名></span><span class="token comment" spellcheck="true"># 如果省略远程分支名,则表示将本地分支推送与之存在"追踪关系"的远程分支(通常两者同名)</span><span class="token comment" spellcheck="true"># 如果该远程分支不存在,则会被新建。</span><span class="token function">git</span> push -u origin master <span class="token comment" spellcheck="true"># 将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。</span><span class="token function">git</span> push ssh://example.com/~/www/project.git<span class="token function">git</span> push --set-upstream https://gitee.com/section2014/notes.git master<span class="token comment" spellcheck="true">## 将服务器内容拉取到本地</span><span class="token comment" spellcheck="true"># 从服务器克隆一个库</span><span class="token function">git</span> clone --depth<span class="token operator">=</span>1 https://github.com/vueComponent/ant-design-vue-pro.git <span class="token punctuation">[</span>my-project<span class="token punctuation">]</span><span class="token comment" spellcheck="true"># 从服务器拉取更新内容</span><span class="token function">git</span> pull<span class="token function">git</span> pull http://git.example.com/project.git<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h2 id="情景演示"><a href="#情景演示" class="headerlink" title="情景演示"></a>情景演示</h2><h3 id="从0开始创建新仓库"><a href="#从0开始创建新仓库" class="headerlink" title="从0开始创建新仓库"></a>从0开始创建新仓库</h3><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">git</span> clone https://git.inspur.com/iNOS/icloud/nscs-api.git<span class="token function">cd</span> nscs-api <span class="token function">touch</span> README.md <span class="token function">git</span> add README.md <span class="token function">git</span> commit -m <span class="token string">"add README"</span> <span class="token function">git</span> push -u origin master<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="推送已经存在的文件夹到远程仓库"><a href="#推送已经存在的文件夹到远程仓库" class="headerlink" title="推送已经存在的文件夹到远程仓库"></a>推送已经存在的文件夹到远程仓库</h3><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">cd</span> existing_folder<span class="token function">git</span> init<span class="token function">git</span> remote add origin https://git.inspur.com/iNOS/icloud/nscs-api.git<span class="token function">git</span> add <span class="token keyword">.</span> <span class="token function">git</span> commit -m <span class="token string">"Initial commit"</span> <span class="token function">git</span> push -u origin master<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="推送已经被-Git-管理的文件夹到远程仓库"><a href="#推送已经被-Git-管理的文件夹到远程仓库" class="headerlink" title="推送已经被 Git 管理的文件夹到远程仓库"></a>推送已经被 Git 管理的文件夹到远程仓库</h3><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">cd</span> existing_repo<span class="token function">git</span> remote <span class="token function">rename</span> origin old-origin <span class="token function">git</span> remote add origin http://git.inspur.com/iNOS/icloud/nscs-view.git<span class="token function">git</span> push -u origin --all <span class="token function">git</span> push -u origin --tags<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="提交修改内容"><a href="#提交修改内容" class="headerlink" title="提交修改内容"></a>提交修改内容</h3><p>git commit -m “更新文章”</p><pre><code>git pullgit add .git commit -a -m "Changed some files"git push -u origin master</code></pre><h2 id="附:Windows-CMD命令"><a href="#附:Windows-CMD命令" class="headerlink" title="附:Windows CMD命令"></a>附:Windows CMD命令</h2><p>删除文件 <code>del 文件名</code><br>删除文件夹<code>rd 文件夹名</code><br>相关参数:/s参数为子目录,/q参数为不用确认。</p><p>示例:</p><pre class="line-numbers language-basic"><code class="language-basic"># 删除文件del <span class="token number">123.</span>txt# 删除文件夹rd nocc<span class="token operator">-</span>viewrd<span class="token operator">/</span>s<span class="token operator">/</span>q nocc<span class="token operator">-</span>view<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span></span></code></pre><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 版本管理 </category>
</categories>
<tags>
<tag> 版本管理 </tag>
<tag> Git </tag>
</tags>
</entry>
<entry>
<title>NodeJs 基础篇</title>
<link href="/posts/26981.html"/>
<url>/posts/26981.html</url>
<content type="html"><![CDATA[<h1 id="NodeJs-基础篇"><a href="#NodeJs-基础篇" class="headerlink" title="NodeJs 基础篇"></a>NodeJs 基础篇</h1><h2 id="Node-和-npm-工具的安装与验证"><a href="#Node-和-npm-工具的安装与验证" class="headerlink" title="Node 和 npm 工具的安装与验证"></a>Node 和 npm 工具的安装与验证</h2><ol><li>验证 Node 安装。<code>node -v</code></li><li>安装 Node 默认安装 npm 工具,验证 npm 安装。<code>npm -v</code></li></ol><h2 id="npm-仓库的查看与配置"><a href="#npm-仓库的查看与配置" class="headerlink" title="npm 仓库的查看与配置"></a>npm 仓库的查看与配置</h2><p>查看 npm 镜像。</p><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">npm</span> config get registry<span class="token comment" spellcheck="true"># https://registry.npmjs.org/</span><span class="token comment" spellcheck="true"># 设置npm镜像</span><span class="token function">npm</span> config <span class="token keyword">set</span> registry https://registry.npm.taobao.org<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span></span></code></pre><blockquote><p><a href="https://panjiachen.github.io/vue-element-admin-site/zh/guide/#安装" target="_blank" rel="noopener">https://panjiachen.github.io/vue-element-admin-site/zh/guide/#安装</a></p><p><strong>TIP(vue-element-admin)</strong></p><p>强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。若还是不行,可使用 <a href="https://github.com/yarnpkg/yarn" target="_blank" rel="noopener">yarn</a> 替代 <code>npm</code>。</p></blockquote><h2 id="npm-推荐换源-或-cnpm-的依赖管理"><a href="#npm-推荐换源-或-cnpm-的依赖管理" class="headerlink" title="npm(推荐换源) 或 cnpm 的依赖管理"></a>npm(推荐换源) 或 cnpm 的依赖管理</h2><ol><li><p>使用 npm 工具安装依赖。使用 npm 工具安装依赖 <code>npm install xxx</code>。</p><pre class="line-numbers language-bash"><code class="language-bash"><span class="token comment" spellcheck="true"># 各种安装的区别</span><span class="token comment" spellcheck="true"># 全局依赖安装</span><span class="token comment" spellcheck="true"># 1. 将安装包放在 /usr/local 下或者你 node 的安装目录。</span><span class="token comment" spellcheck="true"># 2. 可以直接在命令行里使用。</span><span class="token function">npm</span> <span class="token function">install</span> xxx -g<span class="token comment" spellcheck="true"># 会把依赖安装到 node_modules 中;</span><span class="token comment" spellcheck="true"># 不会修改 package.json,之后运行 npm install 命令时不会自动安装。</span><span class="token function">npm</span> <span class="token function">install</span> xxx<span class="token comment" spellcheck="true"># 会把依赖安装到 node_modules 中;</span><span class="token comment" spellcheck="true"># 会添加依赖到 package.json 的 dependencies 属性下,之后运行 npm install 命令时安装依赖到 node_modules</span><span class="token comment" spellcheck="true"># 之后运行 npm install –production 或者注明 NODE_ENV 变量值为 production 时,会安装到 node_modules</span><span class="token function">npm</span> <span class="token function">install</span> xxx --save<span class="token function">npm</span> <span class="token function">install</span> xxx -S<span class="token comment" spellcheck="true"># 会把依赖安装到 node_modules 中;</span><span class="token comment" spellcheck="true"># 会添加依赖到 package.json 的 devDependencies 属性下,之后运行 npm install 命令时安装依赖到 node_modules</span><span class="token comment" spellcheck="true"># 之后运行 npm install –production 或者注明 NODE_ENV 变量值为 production 时,不会安装到 node_modules</span><span class="token function">npm</span> <span class="token function">install</span> xxx --save-dev<span class="token function">npm</span> <span class="token function">install</span> xxx -D<span class="token comment" spellcheck="true">## 使用原则:运行时需要用到的依赖使用 –-save,否则开发时用到的依赖使用 -–save-dev</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre></li><li><p>国外镜像速度较慢,安装 cnpm 工具。使用 cnpm 工具安装依赖 <code>cnpm install xxx</code>。 </p><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">npm</span> <span class="token function">install</span> -g cnpm --registry<span class="token operator">=</span>https://registry.npm.taobao.org<span class="token comment" spellcheck="true"># 验证</span>cnpm -v<span class="token comment" spellcheck="true"># cnpm@6.1.1 (C:\Users\guo.wl\AppData\Roaming\npm\node_modules\cnpm\lib\parse_argv.js)</span><span class="token comment" spellcheck="true"># npm@6.14.5 (C:\Users\guo.wl\AppData\Roaming\npm\node_modules\cnpm\node_modules\npm\lib\npm.js)</span><span class="token comment" spellcheck="true"># node@12.16.3 (D:\Program Files\nodejs\node.exe)</span><span class="token comment" spellcheck="true"># npminstall@3.27.0 (C:\Users\guo.wl\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\index.js)</span><span class="token comment" spellcheck="true"># prefix=C:\Users\guo.wl\AppData\Roaming\npm</span><span class="token comment" spellcheck="true"># win32 x64 10.0.18363</span><span class="token comment" spellcheck="true"># registry=https://r.npm.taobao.org</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre></li><li><p>使用 npm/cnpm 工具卸载依赖。<code>npm uninstall xxx</code>/<code>cnpm uninstall xxx</code>。</p></li></ol><h2 id="node-modules-的删除"><a href="#node-modules-的删除" class="headerlink" title="node_modules 的删除"></a>node_modules 的删除</h2><p>删除 node_modules 文件夹</p><pre class="line-numbers language-bash"><code class="language-bash"><span class="token function">npm</span> <span class="token function">install</span> rimraf -grimraf node_modules<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span></span></code></pre><h2 id="使用示例"><a href="#使用示例" class="headerlink" title="使用示例"></a>使用示例</h2><pre class="line-numbers language-bash"><code class="language-bash"><span class="token comment" spellcheck="true"># npm install -g @vue/cli</span><span class="token function">npm</span> i -g @vue/cli<span class="token function">npm</span> <span class="token function">install</span> axios --save<span class="token function">npm</span> <span class="token function">install</span> webpack -g<span class="token function">npm</span> <span class="token function">install</span> webpack-cli -g<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 前端 </category>
</categories>
<tags>
<tag> NodeJS </tag>
<tag> npm </tag>
</tags>
</entry>
<entry>
<title>Java 开发中的各种 O</title>
<link href="/posts/54109.html"/>
<url>/posts/54109.html</url>
<content type="html"><![CDATA[<h1 id="Java-开发中的各种-O"><a href="#Java-开发中的各种-O" class="headerlink" title="Java 开发中的各种 O"></a>Java 开发中的各种 O</h1><h5 id="POJO"><a href="#POJO" class="headerlink" title="POJO"></a>POJO</h5><p>Plain Ordinary Java Object</p><p>简单Java对象,就是一个我们最常见的普通Java对象。它具有一些属性,然后提供对应的getter和setter。</p><h5 id="JavaBean"><a href="#JavaBean" class="headerlink" title="JavaBean"></a>JavaBean</h5><p>可序列化的POJO。它需要实现序列化接口<code>java.io.Serializable</code>。</p><h5 id="DO"><a href="#DO" class="headerlink" title="DO"></a>DO</h5><p>Domain Object [ DDD(领域驱动设计) ]</p><p>领域对象,也就是ORM框架中对应数据库的对象,业务实体。例如,对现实世界中的用户建模,抽象出来的DO可以叫为UserDO,通常情况下它用于与数据库的数据交互,通常也是一个JavaBean。</p><h5 id="PO"><a href="#PO" class="headerlink" title="PO"></a>PO</h5><p>Persistent Object</p><p>持久化对象,主要用于持久化层,与数据库对应,通常也是ORM框架中的实体对象,例如,使用JPA时候的Entity与数据库表做映射,通常是一个JavaBean。</p><p><strong>DO 和 PO 大部分时间是一样的,不过PO更倾向于有状态的对象。</strong></p><h5 id="DTO"><a href="#DTO" class="headerlink" title="DTO"></a>DTO</h5><p>Data Transfer Object</p><p>数据传输对象, 顾名思义就是用于传输数据的对象,通常用于处于不同架构层次或者不同子系统之间的数据传递,或者用于外部接口参数传递,以便提供不同粒度不同信息的数据,以免造成困惑干扰,通常也是一个JavaBean。Service 或 Manager 向外传输的对象。</p><h5 id="VO"><a href="#VO" class="headerlink" title="VO"></a>VO</h5><p>Value Object/View Object</p><p>就是用于保存数据的对象;在提供给页面使用的时候,也有人解释为View Object,就是对应页面展示数据的对象。显示层对象,通常是 Web 向模板渲染引擎层传输的对象。</p><p><strong>VO 里的每一个字段,是和你前台 html 页面相对应。</strong></p><h5 id="Query"><a href="#Query" class="headerlink" title="Query"></a>Query</h5><p>xxQuery</p><p>数据查询对象,各层接收上层的查询请求。</p><h5 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h5><ul><li><strong>BO( Business Object):</strong> 业务对象, 由 Service 层输出的封装业务逻辑的对象。</li><li><strong>AO( Application Object):</strong> 应用对象, 在 Web 层与 Service 层之间抽象的复用对象模型,极为贴近展示层,复用度不高。</li></ul><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> Java </category>
</categories>
<tags>
<tag> 领域模型 </tag>
<tag> 微服务 </tag>
</tags>
</entry>
<entry>
<title>Spring Boot 整合 MyBatis-Plus 和 PageHelper</title>
<link href="/posts/24223.html"/>
<url>/posts/24223.html</url>
<content type="html"><![CDATA[<h1 id="Spring-Boot-集成-MyBatis-Plus-和-PageHelper"><a href="#Spring-Boot-集成-MyBatis-Plus-和-PageHelper" class="headerlink" title="Spring Boot 集成 MyBatis-Plus 和 PageHelper"></a>Spring Boot 集成 MyBatis-Plus 和 PageHelper</h1><h2 id="什么是-MyBatis-Plus?"><a href="#什么是-MyBatis-Plus?" class="headerlink" title="什么是 MyBatis-Plus?"></a>什么是 MyBatis-Plus?</h2><p><a href="https://mp.baomidou.com" target="_blank" rel="noopener">MyBatis-Plus</a></p><p>MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。</p><h3 id="POM"><a href="#POM" class="headerlink" title="POM"></a>POM</h3><p>在 <code>pom.xml</code> 文件中引入 <code>mybatis-plus-boot-starter</code> 依赖,该依赖会自动引入 MyBaits 相关依赖</p><pre class="line-numbers language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>properties</span><span class="token punctuation">></span></span> <span class="token comment" spellcheck="true"><!-- orm --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>mybatis-plus-boot-starter.version</span><span class="token punctuation">></span></span>3.3.1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>mybatis-plus-boot-starter.version</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>properties</span><span class="token punctuation">></span></span><span class="token comment" spellcheck="true"><!-- orm --></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>com.baomidou<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>mybatis-plus-boot-starter<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>version</span><span class="token punctuation">></span></span>${mybatis-plus-boot-starter.version}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>version</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="application-yml"><a href="#application-yml" class="headerlink" title="application.yml"></a>application.yml</h3><pre class="line-numbers language-yaml"><code class="language-yaml"><span class="token comment" spellcheck="true">## MyBatis-Plus</span><span class="token key atrule">mybatis-plus</span><span class="token punctuation">:</span> <span class="token key atrule">mapper-locations</span><span class="token punctuation">:</span> classpath*<span class="token punctuation">:</span>/mapper/**/*.xml <span class="token key atrule">global-config</span><span class="token punctuation">:</span> <span class="token key atrule">banner</span><span class="token punctuation">:</span> <span class="token boolean important">false</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="创建配置文件"><a href="#创建配置文件" class="headerlink" title="创建配置文件"></a>创建配置文件</h3><p>创建 MyBatis-Plus 配置文件,设置 MyBatis-Plus 要扫描 mapper 的包路径 com.inspur.boot.volume.*.mapper</p><pre class="line-numbers language-java"><code class="language-java"><span class="token keyword">import</span> com<span class="token punctuation">.</span>baomidou<span class="token punctuation">.</span>mybatisplus<span class="token punctuation">.</span>extension<span class="token punctuation">.</span>plugins<span class="token punctuation">.</span>PaginationInterceptor<span class="token punctuation">;</span><span class="token keyword">import</span> com<span class="token punctuation">.</span>baomidou<span class="token punctuation">.</span>mybatisplus<span class="token punctuation">.</span>extension<span class="token punctuation">.</span>plugins<span class="token punctuation">.</span>pagination<span class="token punctuation">.</span>optimize<span class="token punctuation">.</span>JsqlParserCountOptimize<span class="token punctuation">;</span><span class="token keyword">import</span> org<span class="token punctuation">.</span>mybatis<span class="token punctuation">.</span>spring<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>MapperScan<span class="token punctuation">;</span><span class="token keyword">import</span> org<span class="token punctuation">.</span>springframework<span class="token punctuation">.</span>context<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>Bean<span class="token punctuation">;</span><span class="token keyword">import</span> org<span class="token punctuation">.</span>springframework<span class="token punctuation">.</span>context<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>Configuration<span class="token punctuation">;</span><span class="token keyword">import</span> org<span class="token punctuation">.</span>springframework<span class="token punctuation">.</span>transaction<span class="token punctuation">.</span>annotation<span class="token punctuation">.</span>EnableTransactionManagement<span class="token punctuation">;</span><span class="token comment" spellcheck="true">/** * Mybatis Plus 配置类 * * @author Guo.wl */</span><span class="token annotation punctuation">@Configuration</span> <span class="token comment" spellcheck="true">// 配置类</span><span class="token annotation punctuation">@EnableTransactionManagement</span> <span class="token comment" spellcheck="true">// 开启事务</span><span class="token annotation punctuation">@MapperScan</span><span class="token punctuation">(</span>basePackages <span class="token operator">=</span> <span class="token string">"com.inspur.boot.volume.*.mapper"</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true">// 扫描 mapper 的包路径</span><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MybatisPlusConfig</span> <span class="token punctuation">{</span> <span class="token comment" spellcheck="true">/** * 分页 */</span> <span class="token annotation punctuation">@Bean</span> <span class="token keyword">public</span> PaginationInterceptor <span class="token function">paginationInterceptor</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> PaginationInterceptor paginationInterceptor <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PaginationInterceptor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment" spellcheck="true">// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false</span> paginationInterceptor<span class="token punctuation">.</span><span class="token function">setOverflow</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment" spellcheck="true">// 设置最大单页限制数量,默认 500 条,-1 不受限制</span> paginationInterceptor<span class="token punctuation">.</span><span class="token function">setLimit</span><span class="token punctuation">(</span><span class="token number">500</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment" spellcheck="true">// 开启 count 的 join 优化,只针对部分 left join</span> paginationInterceptor<span class="token punctuation">.</span><span class="token function">setCountSqlParser</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">JsqlParserCountOptimize</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> paginationInterceptor<span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h2 id="什么是-PageHelper"><a href="#什么是-PageHelper" class="headerlink" title="什么是 PageHelper"></a>什么是 PageHelper</h2><p><a href="https://github.com/pagehelper/Mybatis-PageHelper" target="_blank" rel="noopener">PageHelper</a></p><p>PageHelper 是 Mybatis 的分页插件,支持多数据库、多数据源。可以简化数据库的分页查询操作,整合过程也极其简单,只需引入依赖即可。</p><h3 id="POM-1"><a href="#POM-1" class="headerlink" title="POM"></a>POM</h3><p>在 <code>pom.xml</code> 文件中引入 <code>pagehelper-spring-boot-starter</code> 依赖</p><pre class="line-numbers language-xml"><code class="language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>properties</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>pagehelper-spring-boot-starter.version</span><span class="token punctuation">></span></span>1.2.12<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>pagehelper-spring-boot-starter.version</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>properties</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>dependency</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>groupId</span><span class="token punctuation">></span></span>com.github.pagehelper<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>groupId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>artifactId</span><span class="token punctuation">></span></span>pagehelper-spring-boot-starter<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>artifactId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>version</span><span class="token punctuation">></span></span>${pagehelper-spring-boot-starter.version}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>version</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>dependency</span><span class="token punctuation">></span></span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="application-yml-1"><a href="#application-yml-1" class="headerlink" title="application.yml"></a>application.yml</h3><pre class="line-numbers language-yml"><code class="language-yml"># Mybatis分页插件pageHelperpagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: false params: count=countSql<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre><h3 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h3><pre class="line-numbers language-java"><code class="language-java"><span class="token comment" spellcheck="true">// use static method startPage</span>PageHelper<span class="token punctuation">.</span><span class="token function">startPage</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">;</span>List<span class="token operator"><</span>User<span class="token operator">></span> list <span class="token operator">=</span> userMapper<span class="token punctuation">.</span><span class="token function">selectIf</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>PageInfo pageInfo <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">PageInfo</span><span class="token punctuation">(</span>list<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment" spellcheck="true">// pageInfo.getTotal() == 查询记录总数</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span></span></code></pre><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> Spring Boot </category>
</categories>
<tags>
<tag> 微服务 </tag>
<tag> Spring Boot </tag>
</tags>
</entry>
<entry>
<title>Idea 和 eclipse 快捷键对照</title>
<link href="/posts/9298.html"/>
<url>/posts/9298.html</url>
<content type="html"><![CDATA[<h2 id="Idea-和-eclipse-快捷键对照"><a href="#Idea-和-eclipse-快捷键对照" class="headerlink" title="Idea 和 eclipse 快捷键对照"></a>Idea 和 eclipse 快捷键对照</h2><table><thead><tr><th><strong>描述</strong></th><th><strong>Eclipse</strong></th><th><strong>Intellij</strong></th></tr></thead><tbody><tr><td><strong>常用</strong></td><td></td><td></td></tr><tr><td>打开类或接口</td><td>Ctrl+Shift +T</td><td>Ctrl+N</td></tr><tr><td>打开文件/资源</td><td>Ctrl+Shift+R</td><td>Ctrl+Shift+N</td></tr><tr><td>搜索文本</td><td>Ctrl+F</td><td>Ctrl + F<br>Ctrl + R 查找替换</td></tr><tr><td>从接口方法到实现方法</td><td>左键</td><td>Ctrl+Alt+左键</td></tr><tr><td>代码格式化</td><td>Ctrl+Shift+F</td><td>Ctrl+Alt+L</td></tr><tr><td>清除无用import</td><td>Ctrl+Shift+O</td><td>Ctrl+Alt+O</td></tr><tr><td>撤回修改</td><td>Ctrl+Z</td><td>Ctrl+Z</td></tr><tr><td>恢复撤回修改</td><td>Ctrl+Y</td><td>Ctrl+Shift+Z</td></tr><tr><td>代码上移</td><td>Alt +方向键上</td><td>Shift+Alt +方向键上</td></tr><tr><td>代码下移</td><td>Alt +方向键下</td><td>Shift+Alt +方向键下</td></tr><tr><td>删除当前行</td><td>Ctrl+D</td><td>Ctrl+Y</td></tr><tr><td>复制当前行</td><td>Ctrl+Alt+方向键上/下</td><td>Ctrl+D</td></tr><tr><td>重构/抽取变量</td><td></td><td>Ctrl+Alt+V</td></tr><tr><td></td><td></td><td></td></tr><tr><td><strong>调试</strong></td><td></td><td></td></tr><tr><td>运行一行</td><td>F6</td><td>F8</td></tr><tr><td>步入</td><td>F5</td><td>F7<br>Alt+Shift+F7 强制步入</td></tr><tr><td>步出</td><td>待补充</td><td>Shift+F8</td></tr><tr><td>运行到下一个断点</td><td>F8</td><td>F9</td></tr><tr><td>回复运行</td><td></td><td></td></tr></tbody></table><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> tools </category>
</categories>
<tags>
<tag> Java </tag>
<tag> 工具 </tag>
<tag> 快捷键 </tag>
</tags>
</entry>
<entry>
<title>网优相关</title>
<link href="/posts/30400.html"/>
<url>/posts/30400.html</url>
<content type="html"><![CDATA[<h1 id="网优相关"><a href="#网优相关" class="headerlink" title="网优相关"></a>网优相关</h1><h2 id="小区、RRU、BBU、CLB-关系"><a href="#小区、RRU、BBU、CLB-关系" class="headerlink" title="小区、RRU、BBU、CLB 关系"></a>小区、RRU、BBU、CLB 关系</h2><p>RRU、BBU、CLB属于硬件,关系如下:</p><table><thead><tr><th>关系</th><th>RRU</th><th>BBU</th><th>CLB</th></tr></thead><tbody><tr><td>RRU和BBU</td><td>N</td><td>1</td><td></td></tr><tr><td>BBU和CLB</td><td></td><td>N</td><td>1</td></tr></tbody></table><p><strong>注:厂家所说的基带板的概念,指此处的BBU(基带板)和CLB(主控板)</strong></p><p>小区属于逻辑单元,与RRU硬件的关系是<code>N<->N</code>的,具体如下:</p><table><thead><tr><th>小区</th><th>RRU</th><th>描述</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>一般情况下是这样的</td></tr><tr><td>N</td><td>1</td><td>室分小区,小区分类的情况</td></tr><tr><td>1</td><td>N</td><td>超级小区</td></tr></tbody></table><p><strong>3D-MIMO 小区 一定是 D频段小区</strong></p><script> document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { return; } const img = document.createElement('img'); img.style = 'display:none !important;'; img.src = el.dataset.src; img.addEventListener('error', () => { img.remove(); el.style.color = 'inherit'; el.style.backgroundImage = 'none'; el.style.background = 'none'; }); img.addEventListener('load', () => { img.remove(); }); document.body.appendChild(img); }); </script>]]></content>
<categories>
<category> 业务 </category>
</categories>
<tags>
<tag> 网优 </tag>
<tag> 整理 </tag>
</tags>
</entry>
</search>