-
Notifications
You must be signed in to change notification settings - Fork 0
/
local-search.xml
184 lines (87 loc) · 25.3 KB
/
local-search.xml
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
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>Windows命令:type</title>
<link href="/2024/09/26/Windows%E5%91%BD%E4%BB%A4%EF%BC%9Atype/"/>
<url>/2024/09/26/Windows%E5%91%BD%E4%BB%A4%EF%BC%9Atype/</url>
<content type="html"><![CDATA[<h2 id="语法格式"><a href="#语法格式" class="headerlink" title="语法格式"></a>语法格式</h2><p>type命令显示文本文件的内容,类似Linux的<code>cat</code></p><figure class="highlight sh"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs sh"><span class="hljs-built_in">type</span> [drive:][path]filename<br></code></pre></td></tr></table></figure><h2 id="显示内容"><a href="#显示内容" class="headerlink" title="显示内容"></a>显示内容</h2><p>主要用于显示<code>ASCII</code>编码文件,其他编码会乱的。</p><h2 id="文件拼接"><a href="#文件拼接" class="headerlink" title="文件拼接"></a>文件拼接</h2><p><code>type *.sql >> a.sql</code></p>]]></content>
<categories>
<category>工具技巧</category>
</categories>
</entry>
<entry>
<title>MySQL索引背后的数据结构</title>
<link href="/2024/08/15/MySQL%E7%B4%A2%E5%BC%95%E8%83%8C%E5%90%8E%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/"/>
<url>/2024/08/15/MySQL%E7%B4%A2%E5%BC%95%E8%83%8C%E5%90%8E%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/</url>
<content type="html"><![CDATA[<blockquote><p>树的节点的度是指节点的子树个数;树的度指其中节点的度最大值。</p><p>B树中的M阶表示一个节点最多可以拥有的子节点数。</p></blockquote><h2 id="B-Tree"><a href="#B-Tree" class="headerlink" title="B-Tree"></a>B-Tree</h2><p>树的度为m,高度为h。</p><p>$$<br>非叶节点最少有\lceil m/2 \rceil个子节点<br>$$</p><p>每个非叶子节点有n-1个关键字(key),有n的指针,其中<code>m<=n<=2m</code></p><blockquote><p>我们假设现在有一棵深度为1的5阶B树:</p><p><img src="/../images/0ae34d1ca494b7ac044d3bdfca0128bc-1723692250362-6.jpeg" alt="在这里插入图片描述"></p><p>再添加一个节点可能存在两种情况:</p><center class="half"> <img src="./../images/9d717e315db3f2652b0607fc084ae59e.jpeg" width="200"/><img src="./../images/545551dd984c932d2f496fc64215b980.jpeg" width="200"/></center><p>如果不对B树非叶子节点加以限制,那么这个树的节点和深度就会迅速膨胀。</p><p>由于B树是针对外存储器设计的多路查找结构,而一次外存储器IO操作的时间代价要比主存储器读写高出上万倍。因此B树的层数每减少一层、结点数量每减少一个,就是在减少一次外存储器的IO操作。所以说此种限制是为了最大限度的减少查找路径的长度,提高查找效率。</p></blockquote><h2 id="B-树"><a href="#B-树" class="headerlink" title="B+树"></a>B+树</h2><p>非叶子节点不保存数据,只保存关键字用做索引,所有数据都保存在叶子节点中。</p><p>所有叶子节点通过指针链相连,且叶子节点本身按关键字的大小从小到大顺序排列。</p>]]></content>
<categories>
<category>数据库</category>
</categories>
</entry>
<entry>
<title>IDEA远程DEBUG调试</title>
<link href="/2024/07/26/IDEA%E8%BF%9C%E7%A8%8BDEBUG%E8%B0%83%E8%AF%95/"/>
<url>/2024/07/26/IDEA%E8%BF%9C%E7%A8%8BDEBUG%E8%B0%83%E8%AF%95/</url>
<content type="html"><![CDATA[<h2 id="在IDEA中配置"><a href="#在IDEA中配置" class="headerlink" title="在IDEA中配置"></a>在IDEA中配置</h2><p><img src="/../images/idea%E4%B8%ADdebug%E9%85%8D%E7%BD%AE.png"></p><h2 id="修改启动脚本"><a href="#修改启动脚本" class="headerlink" title="修改启动脚本"></a>修改启动脚本</h2><p>使用第一步得到的脚本:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005<br>改造启动脚本命令:</p><figure class="highlight shell"><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><code class="hljs shell">nohup java \<br>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50055 \<br>-jar remote-debug-0.0.1-SNAPSHOT.jar &<br></code></pre></td></tr></table></figure><p>注意在windows中用 ^ 来进行换行</p><h2 id="可以开始调试了"><a href="#可以开始调试了" class="headerlink" title="可以开始调试了"></a>可以开始调试了</h2>]]></content>
<categories>
<category>工具技巧</category>
</categories>
</entry>
<entry>
<title>Java常用工具类代码</title>
<link href="/2024/07/23/Java%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%E7%B1%BB%E4%BB%A3%E7%A0%81/"/>
<url>/2024/07/23/Java%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7%E7%B1%BB%E4%BB%A3%E7%A0%81/</url>
<content type="html"><![CDATA[<h2 id="常用方法"><a href="#常用方法" class="headerlink" title="常用方法"></a>常用方法</h2><h3 id="ObjectUtil-isEmpty"><a href="#ObjectUtil-isEmpty" class="headerlink" title="ObjectUtil.isEmpty()"></a><code>ObjectUtil.isEmpty()</code></h3><p>比较笼统的判断是否为空,不属于下面类型的仅仅判断是否为null</p><figure class="highlight java"><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></pre></td><td class="code"><pre><code class="hljs java"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-type">boolean</span> <span class="hljs-title function_">isEmpty</span><span class="hljs-params">(Object obj)</span> {<br> <span class="hljs-keyword">if</span> (<span class="hljs-literal">null</span> == obj) {<br> <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;<br> }<br><br> <span class="hljs-keyword">if</span> (obj <span class="hljs-keyword">instanceof</span> CharSequence) {<br> <span class="hljs-keyword">return</span> StrUtil.isEmpty((CharSequence) obj);<br> } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (obj <span class="hljs-keyword">instanceof</span> Map) {<br> <span class="hljs-keyword">return</span> MapUtil.isEmpty((Map) obj);<br> } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (obj <span class="hljs-keyword">instanceof</span> Iterable) {<br> <span class="hljs-keyword">return</span> IterUtil.isEmpty((Iterable) obj);<br> } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (obj <span class="hljs-keyword">instanceof</span> Iterator) {<br> <span class="hljs-keyword">return</span> IterUtil.isEmpty((Iterator) obj);<br> } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (ArrayUtil.isArray(obj)) {<br> <span class="hljs-keyword">return</span> ArrayUtil.isEmpty(obj);<br> }<br><br> <span class="hljs-keyword">return</span> <span class="hljs-literal">false</span>;<br>}<br></code></pre></td></tr></table></figure><h3 id="Optional-ofNullable-map-orElse"><a href="#Optional-ofNullable-map-orElse" class="headerlink" title="Optional.ofNullable().map().orElse()"></a><code>Optional.ofNullable().map().orElse()</code></h3><p>v指代是gms这个列表</p><figure class="highlight java"><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><code class="hljs java">List<AllErgenInfoResp> gms = wsAdpterService.getPatientGmInfo(hospitalNumber);<br> patientTagVO.setIsGm(<br> Optional.ofNullable(gms)<br> .map(v -> !v.isEmpty())<br> .orElse(<span class="hljs-literal">false</span>)<br> );<br></code></pre></td></tr></table></figure>]]></content>
<categories>
<category>Java代码块</category>
</categories>
</entry>
<entry>
<title>sql优化</title>
<link href="/2024/07/12/sql%E4%BC%98%E5%8C%96/"/>
<url>/2024/07/12/sql%E4%BC%98%E5%8C%96/</url>
<content type="html"><![CDATA[<h1 id="sql语句优化"><a href="#sql语句优化" class="headerlink" title="sql语句优化"></a>sql语句优化</h1><ol><li><strong>避免发生隐式类型转换,隐式转换的类型主要有字段类型不一致、in参数包含多个类型、字符集类型或校对规则不一致等</strong></li><li><strong>隐式类型转换可能导致无法使用索引、查询结果不准确等,因此在使用时必须仔细甄别</strong></li><li><strong>数字类型的建议在字段定义时就定义为int或者bigint,表关联时关联字段必须保持类型、字符集、校对规则都一致</strong></li></ol><blockquote><p>在查询时尽量减少*号的使用,而且是varchar类型一定要用引号。</p></blockquote><p><strong>在建立复合索引的时候也要充分考虑存储数据的列与列的关系,找到当列等于某个值时,数据范围依次缩小的列,将这样的列共同组成复合索引。</strong>而且,<strong>在查找不确定的列值时,会导致复合索引中后定义的(索引定义中右侧的,不是WHERE 子句中的右侧)索引列失效</strong>。<strong>IN() 函数也可以使索引正常生效,可以看做是一种多等值判断的情况。</strong></p><p><strong>order by 子句参与下的复合索引生效情况</strong></p>]]></content>
<categories>
<category>数据库</category>
</categories>
</entry>
<entry>
<title>咸亨国际面试</title>
<link href="/2024/07/11/%E5%92%B8%E4%BA%A8%E5%9B%BD%E9%99%85%E9%9D%A2%E8%AF%95/"/>
<url>/2024/07/11/%E5%92%B8%E4%BA%A8%E5%9B%BD%E9%99%85%E9%9D%A2%E8%AF%95/</url>
<content type="html"><![CDATA[<h2 id="final关键字"><a href="#final关键字" class="headerlink" title="final关键字"></a>final关键字</h2><h3 id="基本用法"><a href="#基本用法" class="headerlink" title="基本用法"></a>基本用法</h3><h4 id="修饰类"><a href="#修饰类" class="headerlink" title="修饰类"></a>修饰类</h4><p>当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。</p><p><img src="/../images/final%E7%B1%BB%E6%97%A0%E6%B3%95%E7%BB%A7%E6%89%BF.png"></p><blockquote><p>报错信息: 无法继承最终的“mianshi.People”</p></blockquote><h4 id="修饰方法"><a href="#修饰方法" class="headerlink" title="修饰方法"></a>修饰方法</h4><p>下面这段话摘自《Java编程思想》第四版第143页:</p><p> “使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。“</p><p> 因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。</p><p>注:<strong>类的private方法会隐式地被指定为final方法。</strong></p><h4 id="修饰变量"><a href="#修饰变量" class="headerlink" title="修饰变量"></a>修饰变量</h4><p>对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。</p><h3 id="深入理解final关键字"><a href="#深入理解final关键字" class="headerlink" title="深入理解final关键字"></a>深入理解final关键字</h3><h4 id="类的final变量和普通变量有什么区别"><a href="#类的final变量和普通变量有什么区别" class="headerlink" title="类的final变量和普通变量有什么区别"></a>类的final变量和普通变量有什么区别</h4><p>当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。</p><p><img src="/../images/final%E5%8F%98%E9%87%8F%E6%97%A0%E6%B3%95%E4%BF%AE%E6%94%B9.png"></p><p>变量b被final修饰,因此会被当做编译器常量,所以在使用到b的地方会直接将变量b替换为它的值。而对于变量d的访问却需要在运行时通过链接来进行。不过要注意,只有在编译期间能确切知道final变量值的情况下,编译器才会进行这样的优化。</p><blockquote><p>int类型在Java中,若果作为类成员声明,不初始化值,会被默认初始化为0;如果作为方法的局部变量来声明,不进行初始化的话 会在编译期报错,无法通过编译。</p></blockquote><h4 id="被final修饰的引用变量指向的对象内容可变吗"><a href="#被final修饰的引用变量指向的对象内容可变吗" class="headerlink" title="被final修饰的引用变量指向的对象内容可变吗"></a>被final修饰的引用变量指向的对象内容可变吗</h4><p>可变,final修饰对象之后,引用地址不可变。</p><h4 id="final和static"><a href="#final和static" class="headerlink" title="final和static"></a>final和static</h4><p>static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变</p><figure class="highlight java"><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></pre></td><td class="code"><pre><code class="hljs java"><span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">Test</span> {<br> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">main</span><span class="hljs-params">(String[] args)</span> {<br> <span class="hljs-type">MyClass</span> <span class="hljs-variable">myClass1</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">MyClass</span>();<br> <span class="hljs-type">MyClass</span> <span class="hljs-variable">myClass2</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">MyClass</span>();<br> System.out.println(myClass1.i);<br> System.out.println(myClass1.j);<br> System.out.println(myClass2.i);<br> System.out.println(myClass2.j);<br> }<br>}<br><span class="hljs-keyword">class</span> <span class="hljs-title class_">MyClass</span> {<br> <span class="hljs-keyword">public</span> <span class="hljs-keyword">final</span> <span class="hljs-type">double</span> <span class="hljs-variable">i</span> <span class="hljs-operator">=</span> Math.random();<br> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-type">double</span> <span class="hljs-variable">j</span> <span class="hljs-operator">=</span> Math.random();<br>}<br></code></pre></td></tr></table></figure><figure class="highlight apache"><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><code class="hljs apache"><span class="hljs-attribute">0</span>.<span class="hljs-number">06299743342842823</span><br><span class="hljs-attribute">0</span>.<span class="hljs-number">6863535193008683</span><br><span class="hljs-attribute">0</span>.<span class="hljs-number">2856370702656075</span><br><span class="hljs-attribute">0</span>.<span class="hljs-number">6863535193008683</span><br></code></pre></td></tr></table></figure><blockquote><p>static修饰的变量,又称为类变量,也就是说这个变量是属于类的,类的所有实例共享这个变量,可以直接通过类名.变量名的方式获取,静态变量在内存中只存在一份</p></blockquote><h2 id="map和redis缓存区别"><a href="#map和redis缓存区别" class="headerlink" title="map和redis缓存区别"></a>map和redis缓存区别</h2><p>缓存的区别</p><p>缓存分为本地缓存和分布式缓存。以java为例,使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。</p><p>使用redis或memcached之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持redis或memcached服务的高可用,整个程序架构上较为复杂。</p><p>当然如果只是将少量数据保存作为缓存并且没有持久化的需求,那么完全可以用Map做缓存。</p><p>详细的区别:</p><ol><li><p>Redis 可以用几十 G 内存来做缓存,Map 不行,一般 JVM 也就分几个 G 数据就够大了</p></li><li><p>Redis 的缓存可以持久化,Map 是内存对象,程序一重启数据就没了</p></li><li><p>Redis 可以实现分布式的缓存,Map 只能存在创建它的程序里</p></li><li><p>Redis 单点吞吐量能达到10万级,是专业的缓存服务,Map 只是一个普通的对象</p></li><li><p>Redis 缓存有过期机制,Map 本身无此功能</p></li><li><p>Redis 有丰富的 API,Map 就简单太多了</p></li></ol><h2 id="Java常量池"><a href="#Java常量池" class="headerlink" title="Java常量池"></a>Java常量池</h2><h3 id="String常量池"><a href="#String常量池" class="headerlink" title="String常量池"></a>String常量池</h3><p>当String类直接赋值时,如果常量池内存在这个字符串,则s1直接指向常量池的地址,若没有,则先在常量池内创建这个字符串对象,s1直接指向常量池这个字符串的内存地址; 当String类使用new实例对象时,首先在堆里创建这个对象,若是常量池内没这个字符串,则也创建一个,然后堆里的对象的value指向常量池内的字符串。</p><h3 id="class常量池"><a href="#class常量池" class="headerlink" title="class常量池"></a>class常量池</h3><h3 id="运行时常量池"><a href="#运行时常量池" class="headerlink" title="运行时常量池"></a>运行时常量池</h3><h2 id="函数式编程"><a href="#函数式编程" class="headerlink" title="函数式编程"></a>函数式编程</h2><h2 id="RestController和-Controller区别"><a href="#RestController和-Controller区别" class="headerlink" title="@RestController和@Controller区别"></a>@RestController和@Controller区别</h2><p>@RestController注解等价于@ResponseBody + @Controller。@RestController和@Controller的共同点是都用来表示Spring某个类是否可以接收HTTP请求,二者区别: @RestController无法返回指定页面,而@Controller可以;前者可以直接返回数据,后者需要@ResponseBody辅助。下面详细分析。</p><p>① 是否可以返回页面</p><p> 答:@RestController无法返回指定页面,而@Controller可以。 解析:对于Controller, 如果只是使用@RestController注解,则其方法无法返回指定页面,此时配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是 return 里的内容。 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。</p><p> ② 返回内容 如果需要返回JSON,XML或自定义mediaType内容到页面,@RestController自己就可以搞定,这个注解对于返回数据比较方便,因为它会自动将对象实体转换为JSON格式。而@Controller需要在对应的方法加上@ResponseBody注解。</p><h2 id="Bean和-Component区别"><a href="#Bean和-Component区别" class="headerlink" title="@Bean和@Component区别"></a>@Bean和@Component区别</h2>]]></content>
<categories>
<category>面试</category>
</categories>
</entry>
<entry>
<title>navicat重置脚本</title>
<link href="/2024/07/10/navicat%E9%87%8D%E7%BD%AE%E8%84%9A%E6%9C%AC/"/>
<url>/2024/07/10/navicat%E9%87%8D%E7%BD%AE%E8%84%9A%E6%9C%AC/</url>
<content type="html"><![CDATA[<figure class="highlight sh"><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><code class="hljs sh">@<span class="hljs-built_in">echo</span> off<br> <br>reg delete <span class="hljs-string">"HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration15XCS"</span> /f<br>reg delete <span class="hljs-string">"HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update"</span> /f<br> <br> <br><span class="hljs-built_in">set</span> regpath=HKEY_CURRENT_USER\Software\Classes\CLSID<br> <br> <br> <br><span class="hljs-built_in">set</span> <span class="hljs-string">"str=HKEY_CURRENT_USER\Software\Classes\CLSID"</span><br> <br><span class="hljs-keyword">for</span> /F <span class="hljs-string">"skip=1 tokens=1*"</span> %%i <span class="hljs-keyword">in</span> (<span class="hljs-string">'reg query "%str%" /s /k /f "info"'</span>) <span class="hljs-keyword">do</span> (<br> <br>reg delete <span class="hljs-string">"%%i"</span> /F<br> <br>)<br>pause<br></code></pre></td></tr></table></figure>]]></content>
<categories>
<category>工具技巧</category>
</categories>
<tags>
<tag>script</tag>
</tags>
</entry>
<entry>
<title>Oracle使用问题</title>
<link href="/2024/07/05/Oracle%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98/"/>
<url>/2024/07/05/Oracle%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98/</url>
<content type="html"><![CDATA[<h1 id="Oracle——记一次使用问题"><a href="#Oracle——记一次使用问题" class="headerlink" title="Oracle——记一次使用问题"></a>Oracle——记一次使用问题</h1><p>Oracle用户创建之后需要赋予其连接数据库的能力:</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs sql"><span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">CREATE</span> SESSION <span class="hljs-keyword">TO</span> <span class="hljs-operator"><</span>username<span class="hljs-operator">></span>;<br></code></pre></td></tr></table></figure><p>在Oracle数据库中,一个模式(Schema)通常对应一个数据库用户。具体来说,模式就是一个数据库用户的集合名空间,包含该用户拥有的所有数据库对象,如表、视图、索引、存储过程等。</p><p>所以在Spring等配置数据库是需要使用特定用户连接特定的Schema。</p>]]></content>
<categories>
<category>数据库</category>
</categories>
</entry>
<entry>
<title>毕业典礼</title>
<link href="/2024/06/25/%E6%AF%95%E4%B8%9A%E5%85%B8%E7%A4%BC/"/>
<url>/2024/06/25/%E6%AF%95%E4%B8%9A%E5%85%B8%E7%A4%BC/</url>
<content type="html"><![CDATA[<p><img src="/./../images/%E6%AF%95%E4%B8%9A-1727426873491-1.jpg" alt="毕业"></p>]]></content>
<tags>
<tag>生活</tag>
</tags>
</entry>
</search>