-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
192 lines (110 loc) · 72.1 KB
/
Copy pathatom.xml
File metadata and controls
192 lines (110 loc) · 72.1 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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>BeginnerCong</title>
<subtitle>一个游走在技术边缘的初学者</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="http://beginnercong.github.io/"/>
<updated>2020-01-03T03:50:33.061Z</updated>
<id>http://beginnercong.github.io/</id>
<author>
<name>BeginnerCong</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>Bootstrap Table表格信息过长显示省略号,鼠标悬停显示详细信(基于JeePlus平台)</title>
<link href="http://beginnercong.github.io/2020/01/03/Bootstrap%20Table%E8%A1%A8%E6%A0%BC%E4%BF%A1%E6%81%AF%E8%BF%87%E9%95%BF%E6%98%BE%E7%A4%BA%E7%9C%81%E7%95%A5%E5%8F%B7%EF%BC%8C%E9%BC%A0%E6%A0%87%E6%82%AC%E5%81%9C%E6%98%BE%E7%A4%BA%E8%AF%A6%E7%BB%86%E4%BF%A1-%E5%9F%BA%E4%BA%8EJeePlus%E5%B9%B3%E5%8F%B0/"/>
<id>http://beginnercong.github.io/2020/01/03/Bootstrap%20Table%E8%A1%A8%E6%A0%BC%E4%BF%A1%E6%81%AF%E8%BF%87%E9%95%BF%E6%98%BE%E7%A4%BA%E7%9C%81%E7%95%A5%E5%8F%B7%EF%BC%8C%E9%BC%A0%E6%A0%87%E6%82%AC%E5%81%9C%E6%98%BE%E7%A4%BA%E8%AF%A6%E7%BB%86%E4%BF%A1-%E5%9F%BA%E4%BA%8EJeePlus%E5%B9%B3%E5%8F%B0/</id>
<published>2020-01-03T03:20:49.000Z</published>
<updated>2020-01-03T03:50:33.061Z</updated>
<content type="html"><![CDATA[<h3 id="Bootstrap-Table表格信息过长显示省略号,鼠标悬停显示详细信-基于JeePlus平台"><a href="#Bootstrap-Table表格信息过长显示省略号,鼠标悬停显示详细信-基于JeePlus平台" class="headerlink" title="Bootstrap Table表格信息过长显示省略号,鼠标悬停显示详细信(基于JeePlus平台)"></a>Bootstrap Table表格信息过长显示省略号,鼠标悬停显示详细信(基于JeePlus平台)</h3><a id="more"></a><p>Bootstrap Table字段内容过多溢出,隐藏并显示省略号,鼠标停显示文本内容。</p><img src="http://qiniu.cyspace.top/static/images/BootstrapTable/0.png"><p>实现效果如上图所示。</p><h4 id="1、在Bootstrap-Table配置部分的columns里如下写"><a href="#1、在Bootstrap-Table配置部分的columns里如下写" class="headerlink" title="1、在Bootstrap Table配置部分的columns里如下写"></a>1、在Bootstrap Table配置部分的columns里如下写</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line"> field: 'address',</span><br><span class="line"> title: '通讯地址',</span><br><span class="line"> sortable: true,</span><br><span class="line"> cellStyle: formatTableUnit,</span><br><span class="line"> formatter: paramsMatter,</span><br><span class="line"> sortName: 'address'</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h4 id="2-定义方法"><a href="#2-定义方法" class="headerlink" title="2.定义方法:"></a>2.定义方法:</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">//表格超出宽度鼠标悬停显示td内容</span><br><span class="line">function paramsMatter(value,row,index, field) {</span><br><span class="line"> var span=document.createElement('span');</span><br><span class="line"> if (typeof(value) == "undefined"){</span><br><span class="line">span.innerHTML = '-';</span><br><span class="line">span.setAttribute('title','-');</span><br><span class="line"> }else{</span><br><span class="line">span.innerHTML = value;</span><br><span class="line">span.setAttribute('title',value);</span><br><span class="line"> }</span><br><span class="line"> return span.outerHTML;</span><br><span class="line">}</span><br><span class="line">//内容超过宽度隐藏</span><br><span class="line">function formatTableUnit(value, row, index){</span><br><span class="line"> return {</span><br><span class="line"> css: {</span><br><span class="line"> "white-space": 'nowrap',</span><br><span class="line"> "text-overflow": 'ellipsis',</span><br><span class="line"> "overflow": 'hidden',</span><br><span class="line"> "max-width":"150px"</span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line">}</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<h3 id="Bootstrap-Table表格信息过长显示省略号,鼠标悬停显示详细信-基于JeePlus平台"><a href="#Bootstrap-Table表格信息过长显示省略号,鼠标悬停显示详细信-基于JeePlus平台" class="headerlink" title="Bootstrap Table表格信息过长显示省略号,鼠标悬停显示详细信(基于JeePlus平台)"></a>Bootstrap Table表格信息过长显示省略号,鼠标悬停显示详细信(基于JeePlus平台)</h3>
</summary>
<category term="杂项" scheme="http://beginnercong.github.io/categories/%E6%9D%82%E9%A1%B9/"/>
</entry>
<entry>
<title>使用JRebel实现SpringBoot热部署</title>
<link href="http://beginnercong.github.io/2019/12/30/%E4%BD%BF%E7%94%A8JRebel%E5%AE%9E%E7%8E%B0SpringBoot%E7%83%AD%E9%83%A8%E7%BD%B2/"/>
<id>http://beginnercong.github.io/2019/12/30/%E4%BD%BF%E7%94%A8JRebel%E5%AE%9E%E7%8E%B0SpringBoot%E7%83%AD%E9%83%A8%E7%BD%B2/</id>
<published>2019-12-30T02:16:47.000Z</published>
<updated>2020-03-31T07:50:17.233Z</updated>
<content type="html"><![CDATA[<h3 id="使用JRebel实现SpringBoot热部署"><a href="#使用JRebel实现SpringBoot热部署" class="headerlink" title="使用JRebel实现SpringBoot热部署"></a>使用JRebel实现SpringBoot热部署</h3><a id="more"></a><h4 id="1、安装JRebel"><a href="#1、安装JRebel" class="headerlink" title="1、安装JRebel"></a>1、安装JRebel</h4><p>eclipse已经安装JRebel(如未安装,可以打开Help->Eclipse Marketplace搜索jrebel安装)</p><img src="http://qiniu.cyspace.top/static/images/JRebel/0.png"><h4 id="2、激活JRebel"><a href="#2、激活JRebel" class="headerlink" title="2、激活JRebel"></a>2、激活JRebel</h4><p>下载反向代理工具 <a href="https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0" target="_blank" rel="noopener">下载地址</a>,我用的是如图所示那个</p><img src="http://qiniu.cyspace.top/static/images/JRebel/1.png"><p>下载完成后直接双击运行,出现如图所示命令窗口,就是启动成功了</p><img src="http://qiniu.cyspace.top/static/images/JRebel/2.png"><p>在eclipse中依次点击:Help->JRebel->Activation,打开如图界面,选中第一项Team URL(connect to licensing service),在第一栏中输入<a href="http://127.0.0.1:8888/GUID" target="_blank" rel="noopener">http://127.0.0.1:8888/GUID</a> GUID去这个<a href="https://www.guidgen.com/" target="_blank" rel="noopener">网站</a>生成然后复制过来就好了。</p><p>第二栏的邮箱随便填一个合法的就可以了。 然后点击Change license按钮就可以成功激活了</p><img src="http://qiniu.cyspace.top/static/images/JRebel/3.png"><p>JRebel激活之后默认是联网使用的 , 在该模式下 , JRebel会一直联网监测激活信息 . 所以要调为离线使用的,依次点击Help -> JRebel ->Configuration,打开下面的页面,并且点击Work offline,出现下图所示信息就OK了,同时也可以关闭反向代理了,以后激活状态到期后,按照步骤再来一次就可以了</p><img src="http://qiniu.cyspace.top/static/images/JRebel/4.png"><h4 id="3、项目启用JRebel"><a href="#3、项目启用JRebel" class="headerlink" title="3、项目启用JRebel"></a>3、项目启用JRebel</h4><p>依次点击Help -> JRebel ->Configuration->Projects,配置方式如图步骤:</p><img src="http://qiniu.cyspace.top/static/images/JRebel/5.png"><img src="http://qiniu.cyspace.top/static/images/JRebel/6.png">]]></content>
<summary type="html">
<h3 id="使用JRebel实现SpringBoot热部署"><a href="#使用JRebel实现SpringBoot热部署" class="headerlink" title="使用JRebel实现SpringBoot热部署"></a>使用JRebel实现SpringBoot热部署</h3>
</summary>
<category term="杂项" scheme="http://beginnercong.github.io/categories/%E6%9D%82%E9%A1%B9/"/>
</entry>
<entry>
<title>Docker学习</title>
<link href="http://beginnercong.github.io/2019/12/20/Docker%E5%AD%A6%E4%B9%A0/"/>
<id>http://beginnercong.github.io/2019/12/20/Docker%E5%AD%A6%E4%B9%A0/</id>
<published>2019-12-20T05:12:59.000Z</published>
<updated>2020-01-14T02:58:43.740Z</updated>
<content type="html"><![CDATA[<h1 id="Docker学习"><a href="#Docker学习" class="headerlink" title="Docker学习"></a>Docker学习</h1><a id="more"></a><h2 id="1-docker安装"><a href="#1-docker安装" class="headerlink" title="1.docker安装"></a>1.docker安装</h2><h3 id="1-1-CentOS安装Docker"><a href="#1-1-CentOS安装Docker" class="headerlink" title="1.1 CentOS安装Docker"></a>1.1 CentOS安装Docker</h3> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">1、Docker 要求 CentOS 系统的内核版本高于 3.10</span><br><span class="line">通过 uname -r 命令查看你当前的内核版本</span><br><span class="line"> uname -r</span><br><span class="line">2、使用 root 权限登录 Centos。确保 yum 包更新到最新。</span><br><span class="line"> yum -y update</span><br><span class="line">3、卸载旧版本(如果安装过旧版本的话)</span><br><span class="line"> yum remove docker docker-common docker-selinux docker-eng</span><br><span class="line">4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是</span><br><span class="line">devicemapper驱动依赖的</span><br><span class="line"> yum install -y yum-utils device-mapper-persistent-data lvm2</span><br><span class="line">5、设置yum源</span><br><span class="line"> yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</span><br><span class="line"> yum makecache fast</span><br><span class="line">6、可以查看所有仓库中所有docker版本,并选择特定版本安装</span><br><span class="line"> yum list docker-ce --showduplicates | sort -r</span><br></pre></td></tr></table></figure> <img src="http://qiniu.cyspace.top/static/images/docker学习/1.png"> <figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">7、安装docker</span><br><span class="line"> yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定</span><br><span class="line">版</span><br><span class="line">8、启动并加入开机启动</span><br><span class="line"> systemctl start docker</span><br><span class="line"> systemctl enable docker</span><br><span class="line">9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)</span><br><span class="line"> docker version</span><br><span class="line"> 出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?</span><br><span class="line"> 解决方案:重启docker服务</span><br><span class="line"> sudo service docker restart</span><br></pre></td></tr></table></figure><img src="http://qiniu.cyspace.top/static/images/docker学习/2.png"><h2 id="2-docker操作"><a href="#2-docker操作" class="headerlink" title="2.docker操作"></a>2.docker操作</h2><h3 id="2-2-docker镜像操作"><a href="#2-2-docker镜像操作" class="headerlink" title="2.2 docker镜像操作"></a>2.2 docker镜像操作</h3><h4 id="2-2-1-什么是docker镜像"><a href="#2-2-1-什么是docker镜像" class="headerlink" title="2.2.1 什么是docker镜像"></a>2.2.1 什么是docker镜像</h4><p> Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。</p><img src="http://qiniu.cyspace.top/static/images/docker学习/3.png"><h4 id="2-2-2-列出镜像"><a href="#2-2-2-列出镜像" class="headerlink" title="2.2.2 列出镜像"></a>2.2.2 列出镜像</h4><p>列出docker下的所有镜像:docker images</p><img src="http://qiniu.cyspace.top/static/images/docker学习/4.png"><p>REPOSITORY:镜像所在的仓库名称<br>TAG:镜像标签<br>IMAGE ID:镜像ID<br>CREATED:镜像的创建日期(不是获取该镜像的日期)<br>SIZE:镜像大小<br>这些镜像都是存储在Docker宿主机的/var/lib/docker目录下</p><img src="http://qiniu.cyspace.top/static/images/docker学习/5.png"><p> 为了区分同一个仓库下的不同镜像,Docker提供了一种称为标签(Tag)的功能。每个镜像在列出来时都带有一个标签,例如12.10、12.04等等。每个标签对组成特定镜像的一些镜像层进行标记(比如,标签12.04就是对所有Ubuntu12.04镜像层的标记)。这种机制使得同一个仓库中可以存储多个镜像。—- 版本号</p><p> 我们在运行同一个仓库中的不同镜像时,可以通过在仓库名后面加上一个冒号和标签名来指定该仓库中的某一具体的镜像,例如docker run —name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明从镜像Ubuntu:12.04启动一个容器,而这个镜像的操作系统就是Ubuntu:12.04。在构建容器时指定仓库的标签也是一个好习惯。</p><h4 id="2-2-3-搜索镜像"><a href="#2-2-3-搜索镜像" class="headerlink" title="2.2.3 搜索镜像"></a>2.2.3 搜索镜像</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">搜索镜像:docker search mysql</span><br></pre></td></tr></table></figure><p> 可使用 docker search命令搜索存放在 Docker Hub中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 mysql这个关键词的镜像仓库</p><img src="http://qiniu.cyspace.top/static/images/docker学习/6.png"><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">NAME:镜像仓库名称。</span><br><span class="line">DESCRIPTION:镜像仓库描述。</span><br><span class="line">STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0</span><br><span class="line">OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维</span><br><span class="line">护。</span><br><span class="line">AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的</span><br></pre></td></tr></table></figure><h4 id="2-2-4-拉取镜像"><a href="#2-2-4-拉取镜像" class="headerlink" title="2.2.4 拉取镜像"></a>2.2.4 拉取镜像</h4><h5 id="2-2-4-1-从Docker-Hub拉取"><a href="#2-2-4-1-从Docker-Hub拉取" class="headerlink" title="2.2.4.1 从Docker Hub拉取"></a>2.2.4.1 从Docker Hub拉取</h5><p> Docker镜像首页,包括官方镜像和其它公开镜像。Docker Hub上最受欢迎的10大镜像(通过Docker registry API获取不了镜像被pull的个数,只能通过镜像的stars数量,来衡量镜像的流行度。毫无疑问,拥有最高stars数量的库都是官方库)。</p><img src="http://qiniu.cyspace.top/static/images/docker学习/7.png"><p> 国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,可以使用国内(docker.io)的一些镜像加速器,镜像保持和官方一致,关键是速度块,推荐使用。Mirror与Private Registry的区别:</p><p> Private Registry(私有仓库)是开发者或者企业自建的镜像存储库,通常用来保存企业内部的 Docker 镜像,用于内部开发流程和产品的发布、版本控制。</p><p> Mirror是一种代理中转服务,我们(比如daocloud)提供的Mirror服务,直接对接Docker Hub的官方Registry。Docker Hub 上有数以十万计的各类 Docker 镜像。</p><p> 在使用Private Registry时,需要在Docker Pull 或Dockerfile中直接键入Private Registry 的地址,通常这样会导致与 Private Registry 的绑定,缺乏灵活性。</p><p>使用 Mirror 服务,只需要在 Docker 守护进程(Daemon)的配置文件中加入 Mirror 参数,即可在全局范围内透明的访问官方的 Docker Hub,避免了对 Dockerfile 镜像引用来源的修改。</p><p> 简单来说,Mirror类似CDN,本质是官方的cache;Private Registry类似私服,跟官方没什么关系。对用户来说,由于用户是要拖docker hub上的image,对应的是Mirror。yum/apt-get的Mirror又有点不一样,它其实是把官方的库文件整个拖到自己的服务器上做镜像,并定时与官方做同步;而Docker Mirror只会缓存曾经使用过的image。</p><p>使用命令拉取:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">docker pull centos:7</span><br></pre></td></tr></table></figure><p> 目前国内访问docker hub速度上有点尴尬,使用docker Mirror势在必行。现有国内提供docker镜像加速服务的商家有不少,我们可以借助阿里云的镜像加速器。</p><h5 id="2-2-4-2-阿里云的镜像加速"><a href="#2-2-4-2-阿里云的镜像加速" class="headerlink" title="2.2.4.2 阿里云的镜像加速"></a>2.2.4.2 阿里云的镜像加速</h5><p>登录阿里云<br>(<a href="https://cr.console.aliyun.com/#/accelerator" target="_blank" rel="noopener">https://cr.console.aliyun.com/#/accelerator</a>) </p><p>可以看到镜像加速地址如下图: </p><img src="http://qiniu.cyspace.top/static/images/docker学习/8.png"><p>配置步骤:</p><p>(1)编辑该文件:vi /etc/docker/daemon.json</p><p>(2)在该文件中输入如下内容:</p><p>{</p><p> “registry-mirrors”: [“<a href="https://61b9q9w5.mirror.aliyuncs.com" target="_blank" rel="noopener">https://61b9q9w5.mirror.aliyuncs.com</a>“]</p><p>}</p><p>(3)注意:一定要重启docker服务</p><img src="http://qiniu.cyspace.top/static/images/docker学习/9.png"><h4 id="2-2-5-删除镜像"><a href="#2-2-5-删除镜像" class="headerlink" title="2.2.5 删除镜像"></a>2.2.5 删除镜像</h4><p>docker rmi $IMAGE_ID:删除指定镜像</p><h3 id="2-3-docker容器操作"><a href="#2-3-docker容器操作" class="headerlink" title="2.3 docker容器操作"></a>2.3 docker容器操作</h3><h4 id="2-3-1-基本命令"><a href="#2-3-1-基本命令" class="headerlink" title="2.3.1 基本命令"></a>2.3.1 基本命令</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">查看正在运行容器:docker ps</span><br><span class="line">查看所有容器:docker ps -a</span><br><span class="line">查看最后一次运行的容器:docker ps -l</span><br><span class="line">查看停止的容器:docker ps -f status=exited</span><br><span class="line">进入容器,其中字符串为容器ID:docker exec -it 容器ID /bin/bash</span><br><span class="line">停用全部运行中的容器:docker stop $(docker ps -q)</span><br><span class="line">删除全部容器:docker rm $(docker ps -aq)</span><br><span class="line">一条命令实现停用并删除容器:docker stop $(docker ps -q) & docker rm $(docker ps -aq)</span><br></pre></td></tr></table></figure><img src="http://qiniu.cyspace.top/static/images/docker学习/10.png"><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">CONTAINER_ID:表示容器 ID。</span><br><span class="line">IMAGE:表示镜像名称。</span><br><span class="line">COMMAND:表示启动容器时运行的命令。</span><br><span class="line">CREATED:表示容器的创建时间。</span><br><span class="line">STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。</span><br><span class="line">PORTS:表示容器对外的端口号。</span><br><span class="line">NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的 --name选项自行指定。</span><br><span class="line">docker ps –a 查看所有的容器(启动过的历史容器)</span><br><span class="line">docker ps –l 查看最后一次运行的容器</span><br><span class="line">docker ps -f status=exited 查看停止的容器</span><br></pre></td></tr></table></figure><h4 id="2-3-2-创建和启动容器"><a href="#2-3-2-创建和启动容器" class="headerlink" title="2.3.2 创建和启动容器"></a>2.3.2 创建和启动容器</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">创建容器常用的参数说明:</span><br><span class="line">创建容器命令:docker run</span><br><span class="line">-i:表示运行容器</span><br><span class="line">-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。</span><br><span class="line">--name:为创建的容器命名。</span><br><span class="line">-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。</span><br><span class="line">-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。</span><br><span class="line">-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射</span><br><span class="line">-e:设置环境变量</span><br><span class="line">--net选项:指定网络模式,该选项有以下可选参数:</span><br><span class="line">--net=bridge:默认选项,表示连接到默认的网桥。</span><br><span class="line">--net=host:容器使用宿主机的网络。</span><br><span class="line">--net=container:NAME-or-ID:告诉 Docker让新建的容器使用已有容器的网络配</span><br><span class="line">置。</span><br><span class="line">--net=none:不配置该容器的网络,用户可自定义网络配置。</span><br></pre></td></tr></table></figure><h5 id="1、交互式容器"><a href="#1、交互式容器" class="headerlink" title="1、交互式容器"></a>1、交互式容器</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">创建一个交互式容器并取名为mycentos</span><br><span class="line">docker run -it --name=mycentos centos:7 /bin/bash</span><br><span class="line">使用exit命令 退出当前容器</span><br><span class="line">用docker ps -a 命令查看发现该容器也随之停止</span><br></pre></td></tr></table></figure><img src="http://qiniu.cyspace.top/static/images/docker学习/11.png"><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">启动已运行过的容器:docker start $CONTAINER_NAME/ID</span><br></pre></td></tr></table></figure><img src="http://qiniu.cyspace.top/static/images/docker学习/12.png"><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">停止正在运行的容器:docker stop $CONTAINER_NAME/ID</span><br></pre></td></tr></table></figure><h5 id="2、守护式容器"><a href="#2、守护式容器" class="headerlink" title="2、守护式容器"></a>2、守护式容器</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称不能重复):docker run -di --name=mycentos2 centos:7</span><br><span class="line">登录守护式容器方式:docker exec -it container_name(或者 container_id)/bin/bash(exit退出时,容器不会停止)</span><br></pre></td></tr></table></figure><h4 id="2-3-3-容器的使用"><a href="#2-3-3-容器的使用" class="headerlink" title="2.3.3 容器的使用"></a>2.3.3 容器的使用</h4><h5 id="1、文件拷贝"><a href="#1、文件拷贝" class="headerlink" title="1、文件拷贝"></a>1、文件拷贝</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">如果我们需要将文件拷贝到容器内可以使用cp命令</span><br><span class="line">docker cp 需要拷贝的文件或目录 容器名称:容器目录</span><br><span class="line">也可以将文件从容器内拷贝出来</span><br><span class="line">docker cp 容器名称:容器目录 需要拷贝的文件或目录</span><br></pre></td></tr></table></figure><h5 id="2、目录挂载"><a href="#2、目录挂载" class="headerlink" title="2、目录挂载"></a>2、目录挂载</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。</span><br><span class="line">创建容器 添加-v参数 后边为 宿主机目录:容器目录</span><br><span class="line">docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7</span><br><span class="line">如果你共享的是多级的目录,可能会出现权限不足的提示。</span><br><span class="line">Permission denied</span><br><span class="line">这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题</span><br></pre></td></tr></table></figure><h5 id="3、查看容器IP地址"><a href="#3、查看容器IP地址" class="headerlink" title="3、查看容器IP地址"></a>3、查看容器IP地址</h5><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">我们可以通过以下命令查看容器运行的各种数据</span><br><span class="line">docker inspect mycento3</span><br><span class="line">也可以直接执行下面的命令直接输出IP地址</span><br><span class="line">docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<h1 id="Docker学习"><a href="#Docker学习" class="headerlink" title="Docker学习"></a>Docker学习</h1>
</summary>
<category term="Docker学习" scheme="http://beginnercong.github.io/categories/Docker%E5%AD%A6%E4%B9%A0/"/>
<category term="docker" scheme="http://beginnercong.github.io/tags/docker/"/>
</entry>
<entry>
<title>MongoDB学习</title>
<link href="http://beginnercong.github.io/2019/12/16/MongoDB%E5%AD%A6%E4%B9%A0/"/>
<id>http://beginnercong.github.io/2019/12/16/MongoDB%E5%AD%A6%E4%B9%A0/</id>
<published>2019-12-16T03:54:11.000Z</published>
<updated>2019-12-18T05:12:14.297Z</updated>
<content type="html"><![CDATA[<h2 id="mongodb安装"><a href="#mongodb安装" class="headerlink" title="mongodb安装"></a>mongodb安装</h2><a id="more"></a><h3 id="1-mongodb介绍"><a href="#1-mongodb介绍" class="headerlink" title="1 mongodb介绍"></a>1 mongodb介绍</h3><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/1.png"><h3 id="2-下载mongodb"><a href="#2-下载mongodb" class="headerlink" title="2 下载mongodb"></a>2 下载mongodb</h3><p>MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装。<br>官方下载地址:<a href="https://www.mongodb.com/download-center/community" target="_blank" rel="noopener">https://www.mongodb.com/download-center/community</a><br>本教程下载3.4版本:<a href="http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi" target="_blank" rel="noopener">http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi</a> </p><h3 id="3-安装mongodb"><a href="#3-安装mongodb" class="headerlink" title="3 安装mongodb"></a>3 安装mongodb</h3><p>运行 mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi </p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/2.png"><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/3.png"><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/4.png"><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/5.png"><h3 id="4-启动mongodb"><a href="#4-启动mongodb" class="headerlink" title="4 启动mongodb"></a>4 启动mongodb</h3><p>创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)</p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/6.png"><p>创建配置文件mongo.conf,文件内容如下:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">#数据库路径</span><br><span class="line">dbpath=e:\software\MongoDB\Server\3.4\data</span><br><span class="line">#日志输出文件路径</span><br><span class="line">logpath=d:\software\MongoDB\Server\3.4\logs\mongo.log</span><br><span class="line">#错误日志采用追加模式</span><br><span class="line">logappend=true</span><br><span class="line">#启用日志文件,默认启用</span><br><span class="line">journal=true</span><br><span class="line">#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false</span><br><span class="line">quiet=true</span><br><span class="line">#端口号 默认为27017</span><br><span class="line">port=27017</span><br></pre></td></tr></table></figure><p>安装 MongoDB服务<br>通过执行bin/mongod.exe,使用—install选项来安装服务,使用—config选项来指定之前创建的配置文件。 cmd进入e:\software\MongoDB\Server\3.4\bin,(注:以下操作均以管理员的方式运行cmd)</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mongod.exe --config "e:\software\MongoDB\Server\3.4\mongo.conf" --install</span><br></pre></td></tr></table></figure><p>启动MongoDB服务</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">net start MongoDB</span><br></pre></td></tr></table></figure><p>关闭MongoDB服务</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">net stop MongoDB</span><br></pre></td></tr></table></figure><p>移除MongoDB服务</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">"e:\software\MongoDB\Server\3.4\bin\mongod.exe" ‐‐remove</span><br></pre></td></tr></table></figure><p>启动mongodb服务,<br>命令执行后,浏览器中输入<a href="http://127.0.0.1:27017看到如下界面即说明启动成功" target="_blank" rel="noopener">http://127.0.0.1:27017看到如下界面即说明启动成功</a></p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/7.png"><p>也可以通过bin目录下的mongo.exe连接mongodb</p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/8.png"><h3 id="5-mongodb入门"><a href="#5-mongodb入门" class="headerlink" title="5 mongodb入门"></a>5 mongodb入门</h3><h4 id="5-1-基础概念"><a href="#5-1-基础概念" class="headerlink" title="5.1 基础概念"></a>5.1 基础概念</h4><p>在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:</p><div class="table-container"><table><thead><tr><th>SQL术语/概念</th><th>MongoDB术语/概念</th><th>解释/说明</th></tr></thead><tbody><tr><td>database</td><td>database</td><td>数据库</td></tr><tr><td>table</td><td>collection</td><td>数据库表/集合</td></tr><tr><td>row</td><td>document</td><td>数据记录行/文档</td></tr><tr><td>column</td><td>field</td><td>数据字段/域</td></tr><tr><td>index</td><td>index</td><td>索引</td></tr><tr><td>table joins</td><td></td><td>表连接(MongoDB不支持)</td></tr><tr><td>primary key</td><td>primary key</td><td>主键,MongoDB自动在每个集合中添加_id的主键</td></tr></tbody></table></div><p>1、一个mongodb实例可以创建多个数据库<br>2、一个数据库可以创建多个集合<br>3、一个集合可以包括多个文档</p><h4 id="5-2-连接mongodb"><a href="#5-2-连接mongodb" class="headerlink" title="5.2 连接mongodb"></a>5.2 连接mongodb</h4><p>mongodb的使用方式是客户服务器模式,即使用一个客户端连接mongodb数据库(服务端)。<br>1、 命令格式</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]</span><br></pre></td></tr></table></figure><p>mongodb:// 固定前缀<br>username:账号,可不填<br>password:密码,可不填<br>host:主机名或ip地址,只有host主机名为必填项。<br>port:端口,可不填,默认27017<br>/database:连接某一个数据库<br>?options:连接参数,key/value对<br>例子: </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">mongodb://localhost 连接本地数据库27017端口</span><br><span class="line">mongodb://root:root@localhost 使用用户名root密码为root连接本地数据库27017端口</span><br><span class="line">mongodb://localhost,localhost:27018,localhost:27019,连接三台主从服务器,端口为27017、27018、27019</span><br></pre></td></tr></table></figure><p>2、使用mongodb自带的javascript shell(mongo.exe)连接 </p><p>windows版本的mongodb安装成功,在安装目录下的bin目录有mongo.exe客户端程序</p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/9.png"><p>cmd状态执行mongo.exe: </p><img src="http://qiniu.cyspace.top/static/images/MongoDB学习/10.png"><p>此时就可以输入命令来操作mongodb数据库了,javascript shell可以运行javascript程序。</p><p>3、使用studio3T连接<br>4、使用java程序连接 </p><p>详细参数:<a href="http://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/connect-to-mongodb/" target="_blank" rel="noopener">http://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/connect-to-mongodb/</a> </p><p>添加依赖: </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><dependency></span><br><span class="line"> <groupId>org.mongodb</groupId></span><br><span class="line"> <artifactId>mongo-java-driver</artifactId></span><br><span class="line"> <version>3.6.3</version></span><br><span class="line"></dependency></span><br></pre></td></tr></table></figure><p>测试程序:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">@Test</span><br><span class="line">public void testConnection(){</span><br><span class="line"> //创建mongodb 客户端</span><br><span class="line"> MongoClient mongoClient = new MongoClient("localhost",27017);</span><br><span class="line"> //或者采用连接字符串</span><br><span class="line"> //MongoClientURI connectionString = new</span><br><span class="line"> //MongoClientURI("mongodb://root:root@localhost:27017");</span><br><span class="line"> //MongoClient mongoClient = new MongoClient(connectionString);</span><br><span class="line"> //连接数据库 </span><br><span class="line"> MongoDatabase database = mongoClient.getDatabase("test");</span><br><span class="line"> // 连接collection</span><br><span class="line"> MongoCollection<Document> collection = database.getCollection("student");</span><br><span class="line"> //查询第一个文档</span><br><span class="line"> Document myDoc = collection.find().first();</span><br><span class="line"> //得到文件内容 json串</span><br><span class="line"> String json = myDoc.toJson();</span><br><span class="line"> System.out.println(json);</span><br><span class="line">}</span><br></pre></td></tr></table></figure><h4 id="5-3-数据库"><a href="#5-3-数据库" class="headerlink" title="5.3 数据库"></a>5.3 数据库</h4><p>1、查询数据库<br>show dbs 查询全部数据库<br>db 显示当前数据库<br>2、创建数据库<br>命令格式: </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">use DATABASE_NAME</span><br></pre></td></tr></table></figure><p>例子:<br>use test02<br>有test02数据库则切换到此数据库,没有则创建。<br>注意:<br>新创建的数据库不显示,需要至少包括一个集合。<br>3、删除数据库(慎用!!!)<br>命令格式: </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.dropDatabase()</span><br></pre></td></tr></table></figure><p>例子:<br>删除test02数据库<br>先切换数据库:use test02<br>再执行删除:db.dropDatabase()</p><h4 id="5-4-集合"><a href="#5-4-集合" class="headerlink" title="5.4 集合"></a>5.4 集合</h4><p>集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。 </p><p>1、创建集合 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">db.createCollection(name, options)</span><br><span class="line">name: 新创建的集合名称</span><br><span class="line">options: 创建参数(可选),指定有关内存大小及索引的选项</span><br></pre></td></tr></table></figure><p> 2、删除集合</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">db.collection.drop()</span><br><span class="line">例子:</span><br><span class="line">db.student.drop() 删除student集合</span><br></pre></td></tr></table></figure><h4 id="5-5-文档"><a href="#5-5-文档" class="headerlink" title="5.5 文档"></a>5.5 文档</h4><h5 id="5-5-1-插入文档"><a href="#5-5-1-插入文档" class="headerlink" title="5.5.1 插入文档"></a>5.5.1 插入文档</h5><p>mongodb中文档的格式是json格式,下边就是一个文档,包括两个key:_id主键和name </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line">"_id" : ObjectId("5b2cc4bfa6a44812707739b5"),</span><br><span class="line">"name" : "MongoDB初学"</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>插入命令:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.COLLECTION_NAME.insert(document)</span><br></pre></td></tr></table></figure><p>每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型),mongodb会自动生成主键值。<br>例子:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.insert({"name":"初学者","age":10})</span><br></pre></td></tr></table></figure><p>注意:同一个集合中的文档的key可以不相同!但是建议设置为相同的。</p><h5 id="5-5-2-更新文档"><a href="#5-5-2-更新文档" class="headerlink" title="5.5.2 更新文档"></a>5.5.2 更新文档</h5><p>命令格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">db.collection.update(</span><br><span class="line"> <query>,</span><br><span class="line"> <update>,</span><br><span class="line"> <options></span><br><span class="line">) </span><br><span class="line">query:查询条件,相当于sql语句的where</span><br><span class="line">update:更新文档内容</span><br><span class="line">options:选项</span><br></pre></td></tr></table></figure><p>1、替换文档<br>将符合条件 “name”:”初学者”的第一个文档替换为{“name”:”初学者C”,”age”:10}。 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.update({"name":"初学者"},{"name":"初学者C","age":10})</span><br></pre></td></tr></table></figure><p>2、$set修改器<br>使用$set修改器指定要更新的key,key不存在则创建,存在则更新。<br>将符合条件 “name”:”初学者”的所有文档更新name和age的值。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.update({"name":"初学者"},{$set:{"name":"初学者C","age":10}},{multi:true})</span><br></pre></td></tr></table></figure><p>multi:false表示更新第一个匹配的文档,true表示更新所有匹配的文档。</p><h5 id="5-5-3-删除文档"><a href="#5-5-3-删除文档" class="headerlink" title="5.5.3 删除文档"></a>5.5.3 删除文档</h5><p>命令格式: </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">db.student.remove(<query>)</span><br><span class="line">query:删除条件,相当于sql语句中的where</span><br></pre></td></tr></table></figure><p>1、删除所有文档<br>db.student.remove({})<br>2、删除符合条件的文档<br>db.student.remove({“name”:”初学者”}) </p><h5 id="5-5-4-查询文档"><a href="#5-5-4-查询文档" class="headerlink" title="5.5.4 查询文档"></a>5.5.4 查询文档</h5><p>命令格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">db.collection.find(query, projection)</span><br><span class="line">query:查询条件,可不填</span><br><span class="line">projection:投影查询key,可不填</span><br></pre></td></tr></table></figure><p>1、 查询全部 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.find()</span><br></pre></td></tr></table></figure><p>2、查询符合条件的记录 </p><p>查询name等为”初学者”的文档。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.find({"name":"初学者"})</span><br></pre></td></tr></table></figure><p>3、投影查询<br>只显示name和age两个key,_id主键不显示 。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.student.find({"name":"初学者"},{name:1,age:1,_id:0})</span><br></pre></td></tr></table></figure><h4 id="5-6-用户"><a href="#5-6-用户" class="headerlink" title="5.6 用户"></a>5.6 用户</h4><h5 id="5-6-1-创建用户"><a href="#5-6-1-创建用户" class="headerlink" title="5.6.1 创建用户"></a>5.6.1 创建用户</h5><p>语法格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">mongo>db.createUser(</span><br><span class="line"> {</span><br><span class="line"> user:"<name>",</span><br><span class="line"> pwd:"<cleartext password>",</span><br><span class="line"> customData:{<any information>},</span><br><span class="line"> roles:[</span><br><span class="line"> {role:"<role>",db:"<database>"}|"<role>",</span><br><span class="line"> ...</span><br><span class="line"> ]</span><br><span class="line"> }</span><br><span class="line">)</span><br></pre></td></tr></table></figure><p>例子:<br>创建root用户,角色为root </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">use admin</span><br><span class="line">db.createUser(</span><br><span class="line"> {</span><br><span class="line"> user:"root",</span><br><span class="line"> pwd:"root",</span><br><span class="line"> roles:[{role:"root",db:"admin"}]</span><br><span class="line"> }</span><br><span class="line">)</span><br></pre></td></tr></table></figure><p>内置角色如下:</p><ol><li>数据库用户角色:read、readWrite;</li><li>数据库管理角色:dbAdmin、dbOwner、userAdmin;</li><li>集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;</li><li>备份恢复角色:backup、restore;</li><li>所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、<br>dbAdminAnyDatabase</li><li>超级用户角色:root </li></ol><h5 id="5-6-2-查询用户"><a href="#5-6-2-查询用户" class="headerlink" title="5.6.2 查询用户"></a>5.6.2 查询用户</h5><p>查询当前库下的所有用户:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">show users</span><br></pre></td></tr></table></figure><h5 id="5-6-3-删除用户"><a href="#5-6-3-删除用户" class="headerlink" title="5.6.3 删除用户"></a>5.6.3 删除用户</h5><p>语法格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.dropUser("用户名")</span><br></pre></td></tr></table></figure><p>例子:<br>删除root1用户</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.dropUser("root1")</span><br></pre></td></tr></table></figure><h5 id="5-6-4-修改用户"><a href="#5-6-4-修改用户" class="headerlink" title="5.6.4 修改用户"></a>5.6.4 修改用户</h5><p>语法格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">db.updateUser(</span><br><span class="line"> "<username>",</span><br><span class="line"> {</span><br><span class="line"> customData:{<any information>},</span><br><span class="line"> roles:[</span><br><span class="line"> {role:"<role>",db:"<database>"}|"<role>",</span><br><span class="line"> ...</span><br><span class="line"> ],</span><br><span class="line"> pwd:"<cleartext password>"</span><br><span class="line"> },</span><br><span class="line">writeConcern:{<write concern>}</span><br><span class="line">)</span><br></pre></td></tr></table></figure><p>例子:<br>修改root用户的角色为readWriteAnyDatabase </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">use admin</span><br><span class="line">db.updateUser("root",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})</span><br></pre></td></tr></table></figure><h5 id="5-6-5-修改密码"><a href="#5-6-5-修改密码" class="headerlink" title="5.6.5 修改密码"></a>5.6.5 修改密码</h5><p>语法格式:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">db.changeUserPassword("username","newPasswd")</span><br></pre></td></tr></table></figure><p>例子:<br>修改root用户的密码为123 </p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">use admin</span><br><span class="line">db.changeUserPassword("root","123")</span><br></pre></td></tr></table></figure>]]></content>
<summary type="html">
<h2 id="mongodb安装"><a href="#mongodb安装" class="headerlink" title="mongodb安装"></a>mongodb安装</h2>
</summary>
<category term="MongoDB" scheme="http://beginnercong.github.io/categories/MongoDB/"/>
<category term="mongodb" scheme="http://beginnercong.github.io/tags/mongodb/"/>
</entry>
<entry>
<title>Eclipse中设置本地历史记录、代码找回</title>
<link href="http://beginnercong.github.io/2019/12/03/Eclipse%E4%B8%AD%E8%AE%BE%E7%BD%AE%E6%9C%AC%E5%9C%B0%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E3%80%81%E4%BB%A3%E7%A0%81%E6%89%BE%E5%9B%9E/"/>
<id>http://beginnercong.github.io/2019/12/03/Eclipse%E4%B8%AD%E8%AE%BE%E7%BD%AE%E6%9C%AC%E5%9C%B0%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E3%80%81%E4%BB%A3%E7%A0%81%E6%89%BE%E5%9B%9E/</id>
<published>2019-12-03T11:34:59.000Z</published>
<updated>2019-12-16T10:12:15.943Z</updated>
<content type="html"><![CDATA[<h3 id="Eclipse中设置本地历史记录、代码找回"><a href="#Eclipse中设置本地历史记录、代码找回" class="headerlink" title="Eclipse中设置本地历史记录、代码找回"></a>Eclipse中设置本地历史记录、代码找回</h3><a id="more"></a><h4 id="一、设置本地历史记录"><a href="#一、设置本地历史记录" class="headerlink" title="一、设置本地历史记录"></a>一、设置本地历史记录</h4><p>Window -> Preferences -> General -> Workspace -> Local History</p><img src="http://qiniu.cyspace.top/static/images/eclipse学习/1.png"><p>根据自己的情况进行设置,然后就可以从文件列表中直接打开本地历史记录,还集成了比较功能。</p><h4 id="二、代码找回"><a href="#二、代码找回" class="headerlink" title="二、代码找回"></a>二、代码找回</h4><p>SVN还原更新,本地代码没有提交,不小心代码被覆盖,代码如何找回</p><img src="http://qiniu.cyspace.top/static/images/eclipse学习/2.png"><p>Eclipse中文件或目录右键——>replace with——>local history,然后选择日期预览文件内容</p>]]></content>
<summary type="html">
<h3 id="Eclipse中设置本地历史记录、代码找回"><a href="#Eclipse中设置本地历史记录、代码找回" class="headerlink" title="Eclipse中设置本地历史记录、代码找回"></a>Eclipse中设置本地历史记录、代码找回</h3>
</summary>
</entry>
<entry>
<title>本地未安装oracle数据库使用PL/SQL连接服务器数据库</title>
<link href="http://beginnercong.github.io/2019/12/02/%E6%9C%AC%E5%9C%B0%E6%9C%AA%E5%AE%89%E8%A3%85oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8PL-SQL%E8%BF%9E%E6%8E%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
<id>http://beginnercong.github.io/2019/12/02/%E6%9C%AC%E5%9C%B0%E6%9C%AA%E5%AE%89%E8%A3%85oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8PL-SQL%E8%BF%9E%E6%8E%A5%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%95%B0%E6%8D%AE%E5%BA%93/</id>
<published>2019-12-02T10:46:42.000Z</published>
<updated>2019-12-30T03:37:39.371Z</updated>
<content type="html"><![CDATA[<p>由于项目测试,需要在本地连接远程的Oracle数据库<br><a id="more"></a><br>连接远程Oracle需要两个软件:</p><p>一个Oracle客户端</p><p>链接: <a href="https://pan.baidu.com/s/1EQOY3KL-cfc-1-OGBLChYQ" target="_blank" rel="noopener">https://pan.baidu.com/s/1EQOY3KL-cfc-1-OGBLChYQ</a> 提取码: 4d24</p><p>一个PL/SQL开发环境 <a href="http://xz.198424.com/soft2/plsqldeveloper11.zip" target="_blank" rel="noopener">plsqldeveloper11.zip</a></p><p>特别说明:oracle客户端必须与pl/sql软件位数相同,如:instantclient32位和pl/sql32位</p><p>Oracle客户端说明</p><p>在Oracle客户端解压目录下新建NETWORK\ADMIN,创建tnsnames.ora文件</p><img src="http://qiniu.cyspace.top/static/images/Oracle学习/1.png"><p>文件内容根据自己数据库配置IP、端口、数据库名 一定要注意格式 开头不要有空格</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">ORCL = </span><br><span class="line"> (</span><br><span class="line"> DESCRIPTION = </span><br><span class="line"> (</span><br><span class="line"> ADDRESS_LIST = </span><br><span class="line"> (ADDRESS = (PROTOCOL = TCP)(HOST=x.x.x.x)(PORT = xxx))</span><br><span class="line"> )</span><br><span class="line"> (</span><br><span class="line"> CONNECT_DATA = </span><br><span class="line"> (SERVICE_NAME = xxx) </span><br><span class="line"> )</span><br><span class="line"> )</span><br></pre></td></tr></table></figure><p>ORCL这个是自己起的名字</p><p>SERVICE_NAME 这个是你要连接的名字</p><p> PL/SQL配置:</p><p>运行软件->点击取消->Tools->Preferences->Connection</p><p>填写Oracle Home和OCI library值</p><img src="http://qiniu.cyspace.top/static/images/Oracle学习/2.png"><p>然后重启PL/SQL,下拉选择自己刚才配置的数据库,填写用户名、密码登录</p><p>配置完成 database 下拉框里面 就会有 你配置的名字</p><img src="http://qiniu.cyspace.top/static/images/Oracle学习/3.png">]]></content>
<summary type="html">
<p>由于项目测试,需要在本地连接远程的Oracle数据库<br>
</summary>
<category term="Oracle学习" scheme="http://beginnercong.github.io/categories/Oracle%E5%AD%A6%E4%B9%A0/"/>
</entry>
<entry>
<title>Hexo搭配七牛云存储图片</title>
<link href="http://beginnercong.github.io/2019/12/02/Hexo%E6%90%AD%E9%85%8D%E4%B8%83%E7%89%9B%E4%BA%91%E5%AD%98%E5%82%A8%E5%9B%BE%E7%89%87/"/>
<id>http://beginnercong.github.io/2019/12/02/Hexo%E6%90%AD%E9%85%8D%E4%B8%83%E7%89%9B%E4%BA%91%E5%AD%98%E5%82%A8%E5%9B%BE%E7%89%87/</id>
<published>2019-12-02T05:28:18.000Z</published>
<updated>2019-12-16T10:12:37.782Z</updated>
<content type="html"><![CDATA[<p>记录Hexo博客图片存储的搭建过程,利用的七牛云存储。<br><a id="more"></a></p><h3 id="1、注册七牛云"><a href="#1、注册七牛云" class="headerlink" title="1、注册七牛云"></a>1、注册七牛云</h3><p>注册完成之后就可以进行创建空间了,注意我们添加的资源为对象存储,访问控制为公开空间</p><img src="http://qiniu.cyspace.top/static/images/qiniustudy/1.png"><p>然后点击右上角进入密钥管理,复制当前使用的AK和SK,配置的时候会用得到</p><h3 id="2、安装七牛云同步插件"><a href="#2、安装七牛云同步插件" class="headerlink" title="2、安装七牛云同步插件"></a>2、安装七牛云同步插件</h3><p>需要nodejs环境,具体请参考博客内文章nodejs学习</p><p>在hexo主目录下执行如下命令:</p><p><code>npm install hexo-qiniu-sync - -save</code></p><p>然后把配置信息添加到_config.yml中</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line">plugins:</span><br><span class="line"> - hexo-qiniu-sync</span><br><span class="line"></span><br><span class="line">#七牛云存储设置</span><br><span class="line">##offline 是否离线. 离线状态将使用本地地址渲染</span><br><span class="line">##sync 是否同步</span><br><span class="line">##bucket 空间名称.(请与你七牛云创建的公开空间名称保持一致)</span><br><span class="line">##access_key 上传密钥AccessKey</span><br><span class="line">##secret_key 上传密钥SecretKey</span><br><span class="line">##secret_file 秘钥文件路径,可以将上述两个属性配置到文件内,防止泄露,json格式。绝对路径相对路径均可(注意:如在_config.yml中配置access_key和secret_key请注释此行)</span><br><span class="line">##dirPrefix 上传的资源子目录前缀.如设置,需与urlPrefix同步 </span><br><span class="line">##urlPrefix 外链前缀.(配置为自定义域名或者使用七牛云提供的免费融合CDN域名)</span><br><span class="line">##up_host 上传服务器路径,如选择华北区域的话配置为http://up-z1.qiniu.com</span><br><span class="line">##local_dir 本地目录.</span><br><span class="line">##update_exist 是否更新已经上传过的文件(仅文件大小不同或在上次上传后进行更新的才会重新上传)</span><br><span class="line">##image/js/css 子参数folder为不同静态资源种类的目录名称,一般不需要改动</span><br><span class="line">##image.extend 这是个特殊参数,用于生成缩略图或加水印等操作。具体请参考http://developer.qiniu.com/docs/v6/api/reference/fop/image/ </span><br><span class="line">## 可使用基本图片处理、高级图片处理、图片水印处理这3个接口。例如 ?imageView2/2/w/500 即生成宽度最多500px的缩略图</span><br><span class="line">qiniu:</span><br><span class="line"> offline: false</span><br><span class="line"> sync: true</span><br><span class="line"> bucket: bucket_name</span><br><span class="line"> secret_file: sec/qn.json or C:</span><br><span class="line"> access_key: AccessKey</span><br><span class="line"> secret_key: SecretKey</span><br><span class="line"> dirPrefix: static</span><br><span class="line"> urlPrefix: http://bucket_name.qiniudn.com/static</span><br><span class="line"> up_host: http://upload.qiniu.com</span><br><span class="line"> local_dir: static</span><br><span class="line"> update_exist: true</span><br><span class="line"> image: </span><br><span class="line"> folder: images</span><br><span class="line"> extend: </span><br><span class="line"> js:</span><br><span class="line"> folder: js</span><br><span class="line"> css:</span><br><span class="line"> folder: css</span><br></pre></td></tr></table></figure><p>其中各个参数在插件的<a href="https://github.com/gyk001/hexo-qiniu-sync/blob/master/README.md" target="_blank" rel="noopener">README</a>文件中都有详细的介绍,按照github上的教程一步一步来是很简单的。</p><p>然后在hexo主目录下创建本地目录(该目录要和配置中local_dir参数保持一致)</p><p>为了安全起见,我们把access_key 和secret_key配置在qn.json中,在hexo主目录新建sec文件夹,在sec文件夹下面创建qn.json</p><img src="http://qiniu.cyspace.top/static/images/qiniustudy/2.png"><img src="http://qiniu.cyspace.top/static/images/qiniustudy/3.png"><p>配置文件内容如下:</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">{</span><br><span class="line">"access_key": "你的AccessKey",</span><br><span class="line">"secret_key": "你的SecretKey"</span><br><span class="line">}</span><br></pre></td></tr></table></figure><p>由于七牛云融合 CDN 测试域名时间为一个月所以我们需要自定义域名</p><p>1、打开七牛云融合CDN域名管理</p><p>2、添加域名</p><p> 加速域名输入一个二级域名 ,条件就是主域名要备案,我这里输入的是qiniu.cyspace.top</p><img src="http://qiniu.cyspace.top/static/images/qiniustudy/4.png"><img src="http://qiniu.cyspace.top/static/images/qiniustudy/5.png"><p>3、 添加解析。博主的域名是在万网买的,自然去万网后台 </p><p>配置域名的CNAME请参考:<a href="https://developer.qiniu.com/fusion/kb/1322/how-to-configure-cname-domain-name" target="_blank" rel="noopener">帮助</a> </p><h3 id="3、同步图片到七牛云空间"><a href="#3、同步图片到七牛云空间" class="headerlink" title="3、同步图片到七牛云空间"></a>3、同步图片到七牛云空间</h3><p>执行命令:<code>hexo s</code></p>]]></content>
<summary type="html">
<p>记录Hexo博客图片存储的搭建过程,利用的七牛云存储。<br>
</summary>
</entry>
<entry>
<title>nodejs学习</title>
<link href="http://beginnercong.github.io/2019/11/25/nodejs%E5%AD%A6%E4%B9%A0/"/>
<id>http://beginnercong.github.io/2019/11/25/nodejs%E5%AD%A6%E4%B9%A0/</id>
<published>2019-11-25T02:14:35.000Z</published>
<updated>2019-12-02T05:36:15.124Z</updated>
<content type="html"><![CDATA[<h4 id="一、nodejs下载"><a href="#一、nodejs下载" class="headerlink" title="一、nodejs下载"></a>一、nodejs下载</h4><p>下载nodejs,官网:<a href="http://nodejs.org/" target="_blank" rel="noopener">http://nodejs.org/</a></p><h4 id="二、nodejs安装"><a href="#二、nodejs安装" class="headerlink" title="二、nodejs安装"></a>二、nodejs安装</h4><p>下载完成之后,双击”nodejs安装文件”,开始安装nodejs,自定义安装在F:\nodejs下面。在cmd控制台输入:node -v,控制台将打印出:v10.16.0,出现版本提示表示安装成功。</p><h4 id="三、npm配置"><a href="#三、npm配置" class="headerlink" title="三、npm配置"></a>三、npm配置</h4><p>npm默认的仓库地址是在国外网站,速度较慢,建议大家设置到淘宝镜像。但是切换镜像是比较麻烦的。推荐一款切换镜像的工具:nrm</p><p>我们首先安装nrm,这里<code>-g</code>代表全局安装</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install nrm -g</span><br></pre></td></tr></table></figure><p>然后通过<code>nrm ls</code>命令查看npm的仓库列表,带*的就是当前选中的镜像仓库</p><p>通过<code>nrm use taobao</code>来指定要使用的镜像源</p><p>然后通过<code>nrm test npm</code>来测试速度</p>]]></content>
<summary type="html">
<h4 id="一、nodejs下载"><a href="#一、nodejs下载" class="headerlink" title="一、nodejs下载"></a>一、nodejs下载</h4><p>下载nodejs,官网:<a href="http://nodejs.org
</summary>
<category term="web前端" scheme="http://beginnercong.github.io/categories/web%E5%89%8D%E7%AB%AF/"/>
<category term="nodejs" scheme="http://beginnercong.github.io/tags/nodejs/"/>
</entry>
</feed>