Mycat入门教程

<div id="article\_content" class="article\_content csdn-tracking-statistics tracking-click" data-mod="popu\_519" data-dsm="post" style="overflow: hidden;"> <div class="markdown\_views"> <h2 id="mycat介绍"><a name="t0"></a>mycat介绍</h2> <ul> <li>介绍在官方网站上有比较详细的介绍,在这里复制粘贴没什么意思,大家到官网上看</li> <li><a href="http://www.mycat.org.cn/" target="\_blank">官网链接</a></li> </ul> <h2 id="前置条件"><a name="t1"></a>前置条件</h2> <p>本教程是在window环境下运行的,实际生产推荐在Linux上运行。 <br> 必备条件(自行安装,如果不会装请先打好基础在来学习):</p> <ul> <li>JDK:建议是1.7及其以上。</li> <li>MySQL:必须是5.5及其以上。</li> </ul> <h2 id="拓扑结构"><a name="t2"></a>拓扑结构</h2> <p><img src="http://img.blog.csdn.net/20170224224920432?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""></p> <ul> <li>两张表users和item,三个数据库db01,db02,db03(三个库在一个数据库实例上)</li> <li>users只在db01中存储。</li> <li>item表被分割到db02和db03中存储。</li> </ul> <pre class="prettyprint"><code class="hljs sql has-numbering"><span class="hljs-operator"><span class="hljs-keyword">create</span> <span class="hljs-keyword">database</span> db01;</span> <span class="hljs-operator"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> users ( </br> id <span class="hljs-keyword">INT</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> AUTO\_INCREMENT, </br> name <span class="hljs-keyword">varchar</span>(<span class="hljs-number">50</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-string">''</span>, </br> indate DATETIME <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-string">'0000-00-00 00:00:00'</span>, </br> <span class="hljs-keyword">PRIMARY</span> <span class="hljs-keyword">KEY</span> (id) </br> )AUTO\_INCREMENT= <span class="hljs-number">1</span> ENGINE=InnoDB <span class="hljs-keyword">DEFAULT</span> CHARSET=utf8;</span> </code></pre> <p>在db02和db03中分别创建item表,SQL脚本如下</p> <pre class="prettyprint"><code class="hljs sql has-numbering"><span class="hljs-operator"><span class="hljs-keyword">create</span> <span class="hljs-keyword">database</span> db02;</span> <span class="hljs-operator"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> item ( </br> id <span class="hljs-keyword">INT</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> AUTO\_INCREMENT, </br> <span class="hljs-keyword">value</span> <span class="hljs-keyword">INT</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-number">0</span>, </br> indate DATETIME <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-string">'0000-00-00 00:00:00'</span>, </br> <span class="hljs-keyword">PRIMARY</span> <span class="hljs-keyword">KEY</span> (id) </br> )AUTO\_INCREMENT= <span class="hljs-number">1</span> ENGINE=InnoDB <span class="hljs-keyword">DEFAULT</span> CHARSET=utf8;</span> <span class="hljs-operator"><span class="hljs-keyword">create</span> <span class="hljs-keyword">database</span> db03;</span> <span class="hljs-operator"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> item ( </br> id <span class="hljs-keyword">INT</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> AUTO\_INCREMENT, </br> <span class="hljs-keyword">value</span> <span class="hljs-keyword">INT</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-number">0</span>, </br> indate DATETIME <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span> <span class="hljs-keyword">default</span> <span class="hljs-string">'0000-00-00 00:00:00'</span>, </br> <span class="hljs-keyword">PRIMARY</span> <span class="hljs-keyword">KEY</span> (id) </br> )AUTO\_INCREMENT= <span class="hljs-number">1</span> ENGINE=InnoDB <span class="hljs-keyword">DEFAULT</span> CHARSET=utf8;</span> </code></pre> <h2 id="开始使用"><a name="t3"></a>开始使用</h2> <ul> <li>先打mycat官方网站上下载安装包,网址为<a href="http://dl.mycat.io/1.6-RELEASE/" target="\_blank">mycat</a> 下载图如下所示: <br> <img src="http://img.blog.csdn.net/20170224220138159?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="下载图示" title=""></li> <li>然后在conf目录下编辑service.xml,rule.xml,schema.xml三个文件。 </li> <li>service.xml主要配置mycat服务的参数,比如端口号,myact用户名和密码使用的逻辑数据库等</li> <li>role.xml主要配置路由策略,主要有分片的片键,拆分的策略(取模还是按区间划分等)</li> <li>schema.xml文件主要配置数据库的信息,例如逻辑数据库名称,物理上真实的数据源以及表和数据源之间的对应关系和路由策略等。</li> <li><p>配置如下所示:</p></li> <li><p>server.xml</p></li> </ul> <pre class="prettyprint"><code class="hljs xml has-numbering"><span class="hljs-pi">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span> </br> <span class="hljs-doctype">&lt;!DOCTYPE mycat:server SYSTEM "server.dtd"&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">mycat:server</span> <span class="hljs-attribute">xmlns:mycat</span>=<span class="hljs-value">"http://io.mycat/"</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">system</span>&gt;</span> </br> <span class="hljs-comment">&lt;!-- </br> &lt;property name="processors"&gt;32&lt;/property&gt; </br> &lt;property name="processorExecutor"&gt;32&lt;/property&gt; </br> &lt;property name="bindIp"&gt;0.0.0.0&lt;/property&gt; </br> &lt;property name="frontWriteQueueSize"&gt;4096&lt;/property&gt; </br> &lt;property name="idleTimeout"&gt;300000&lt;/property&gt; </br> &lt;property name="mutiNodePatchSize"&gt;100&lt;/property&gt; </br> --&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"defaultSqlParser"</span>&gt;</span>druidparser<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"mutiNodeLimitType"</span>&gt;</span>1<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"serverPort"</span>&gt;</span>8066<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"managerPort"</span>&gt;</span>9066<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">system</span>&gt;</span> </br> <span class="hljs-comment">&lt;!-- 任意设置登陆 mycat 的用户名,密码,数据库 --&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">user</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"test"</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"password"</span>&gt;</span>test<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"schemas"</span>&gt;</span>TESTDB<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">user</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">user</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"user"</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"password"</span>&gt;</span>user<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"schemas"</span>&gt;</span>TESTDB<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"readOnly"</span>&gt;</span>true<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">user</span>&gt;</span> </br> <span class="hljs-comment">&lt;!-- </br> &lt;quarantine&gt; </br> &lt;whitehost&gt; </br> &lt;host host="127.0.0.1" user="mycat"/&gt; </br> &lt;host host="127.0.0.2" user="mycat"/&gt; </br> &lt;/whitehost&gt; &lt;blacklist check="false"&gt;&lt;/blacklist&gt; &lt;/quarantine&gt; </br> --&gt;</span> </br> <span class="hljs-tag">&lt;/<span class="hljs-title">mycat:server</span>&gt;</span> </br> </code></pre> <ul> <li>role.xml <br> 该路由表表明采用mod2的方式进行路由。通过下面可知是对item表的id键进行取模分表的,取模分到db02和db03,而users表直接路由到db01中。</li> </ul> <pre class="prettyprint"><code class="hljs xml has-numbering"><span class="hljs-pi">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span></br> <span class="hljs-comment">&lt;!-- - - Licensed under the Apache License, Version 2.0 (the "License"); </br> - you may not use this file except in compliance with the License. - You </br> may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 </br> - - Unless required by applicable law or agreed to in writing, software - </br> distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT </br> WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the </br> License for the specific language governing permissions and - limitations </br> under the License. --&gt;</span></br> <span class="hljs-doctype">&lt;!DOCTYPE mycat:rule SYSTEM "rule.dtd"&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">mycat:rule</span> <span class="hljs-attribute">xmlns:mycat</span>=<span class="hljs-value">"http://io.mycat/"</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">tableRule</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"role1"</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">rule</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">columns</span>&gt;</span>id<span class="hljs-tag">&lt;/<span class="hljs-title">columns</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">algorithm</span>&gt;</span>mod-long<span class="hljs-tag">&lt;/<span class="hljs-title">algorithm</span>&gt;</span></br> <span class="hljs-tag">&lt;/<span class="hljs-title">rule</span>&gt;</span></br> <span class="hljs-tag">&lt;/<span class="hljs-title">tableRule</span>&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">function</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"mod-long"</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"io.mycat.route.function.PartitionByMod"</span>&gt;</span></br> <span class="hljs-comment">&lt;!-- how many data nodes --&gt;</span></br> <span class="hljs-tag">&lt;<span class="hljs-title">property</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"count"</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-title">property</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">function</span>&gt;</span></br> <span class="hljs-tag">&lt;/<span class="hljs-title">mycat:rule</span>&gt;</span></br> </code></pre> <ul> <li>schema.xml 数据库的url,usename,password按实际情况填写。</li></br> </ul> <pre class="prettyprint"><code class="hljs xml has-numbering"><span class="hljs-pi">&lt;?xml version="1.0"?&gt;</span> </br> <span class="hljs-doctype">&lt;!DOCTYPE mycat:schema SYSTEM "schema.dtd"&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">mycat:schema</span> <span class="hljs-attribute">xmlns:mycat</span>=<span class="hljs-value">"http://io.mycat/"</span>&gt;</span> </br> <span class="hljs-comment">&lt;!-- 设置表的存储方式.schema name="TESTDB" 与 server.xml中的 TESTDB 设置一致 --&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">schema</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"TESTDB"</span> <span class="hljs-attribute">checkSQLschema</span>=<span class="hljs-value">"false"</span> <span class="hljs-attribute">sqlMaxLimit</span>=<span class="hljs-value">"100"</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"users"</span> <span class="hljs-attribute">primaryKey</span>=<span class="hljs-value">"id"</span> <span class="hljs-attribute">dataNode</span>=<span class="hljs-value">"node\_db01"</span> /&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"item"</span> <span class="hljs-attribute">primaryKey</span>=<span class="hljs-value">"id"</span> <span class="hljs-attribute">dataNode</span>=<span class="hljs-value">"node\_db02,node\_db03"</span> <span class="hljs-attribute">rule</span>=<span class="hljs-value">"role1"</span> /&gt;</span> </br> <span class="hljs-tag">&lt;/<span class="hljs-title">schema</span>&gt;</span> </br> <span class="hljs-comment">&lt;!-- 设置dataNode 对应的数据库,及 mycat 连接的地址dataHost --&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">dataNode</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"node\_db01"</span> <span class="hljs-attribute">dataHost</span>=<span class="hljs-value">"dataHost01"</span> <span class="hljs-attribute">database</span>=<span class="hljs-value">"db01"</span> /&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">dataNode</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"node\_db02"</span> <span class="hljs-attribute">dataHost</span>=<span class="hljs-value">"dataHost01"</span> <span class="hljs-attribute">database</span>=<span class="hljs-value">"db02"</span> /&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">dataNode</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"node\_db03"</span> <span class="hljs-attribute">dataHost</span>=<span class="hljs-value">"dataHost01"</span> <span class="hljs-attribute">database</span>=<span class="hljs-value">"db03"</span> /&gt;</span> </br> <span class="hljs-comment">&lt;!-- mycat 逻辑主机dataHost对应的物理主机.其中也设置对应的mysql登陆信息 --&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">dataHost</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"dataHost01"</span> <span class="hljs-attribute">maxCon</span>=<span class="hljs-value">"1000"</span> <span class="hljs-attribute">minCon</span>=<span class="hljs-value">"10"</span> <span class="hljs-attribute">balance</span>=<span class="hljs-value">"0"</span> <span class="hljs-attribute">writeType</span>=<span class="hljs-value">"0"</span> <span class="hljs-attribute">dbType</span>=<span class="hljs-value">"mysql"</span> <span class="hljs-attribute">dbDriver</span>=<span class="hljs-value">"native"</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">heartbeat</span>&gt;</span>select user()<span class="hljs-tag">&lt;/<span class="hljs-title">heartbeat</span>&gt;</span> </br> <span class="hljs-tag">&lt;<span class="hljs-title">writeHost</span> <span class="hljs-attribute">host</span>=<span class="hljs-value">"server1"</span> <span class="hljs-attribute">url</span>=<span class="hljs-value">"127.0.0.1:3306"</span> <span class="hljs-attribute">user</span>=<span class="hljs-value">"root"</span> <span class="hljs-attribute">password</span>=<span class="hljs-value">"123456"</span>/&gt;</span> </br> <span class="hljs-tag">&lt;/<span class="hljs-title">dataHost</span>&gt;</span> </br> <span class="hljs-tag">&lt;/<span class="hljs-title">mycat:schema</span>&gt;</span></code></pre></br> <h2 id="启动测试"><a name="t4"></a>启动测试</h2> <ul> <li>在命令行切换到bin目录下,然后执行如下命令: <br> <img src="http://img.blog.csdn.net/20170224221918167?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""> <br> 正确启动后会显示如下命令: <br> <img src="http://img.blog.csdn.net/20170224222035214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""> <br> 然后表示我们启动服务成功。</li></br> </ul> <h2 id="验证结果"><a name="t5"></a>验证结果</h2> <ul> <li>在命令行访问mycat逻辑数据库,采用如下的命令:</li> </ul> <blockquote> <p>mysql -utest -ptest -h127.0.0.1 -P8066 -DTESTDB </p> </blockquote> <ul> <li><p>现在通过数据库查询数据库和表,发现只有逻辑数据库TESTDB而不是db01, db02, db03;而且表也是统一显示的,而不是分布在不同的实际数据库中。参考图片如下: <br> <img src="http://img.blog.csdn.net/20170224222718702?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""></p> <ul><li>现在在访问Mycat在数据库中插入数据,看数据能否按照前面配置的路由规则进行分表。</li> <li>现在执行如下的SQL语句进行数据的插入。</li></ul></li> </ul> <pre class="prettyprint"><code class="hljs sql has-numbering"><span class="hljs-operator"><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> users(name,indate) <span class="hljs-keyword">values</span>(<span class="hljs-string">'kk'</span>,now());</span> <span class="hljs-operator"><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> users(name,indate) <span class="hljs-keyword">values</span>(<span class="hljs-string">'ss'</span>,now());</span> <span class="hljs-operator"><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> item(id,<span class="hljs-keyword">value</span>,indate) <span class="hljs-keyword">values</span>(<span class="hljs-number">1</span>,<span class="hljs-number">100</span>,now());</span> <span class="hljs-operator"><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> item(id,<span class="hljs-keyword">value</span>,indate) <span class="hljs-keyword">values</span>(<span class="hljs-number">2</span>,<span class="hljs-number">100</span>,now());</span></code></pre> <ul> <li>然后在mycat上查看是否插入成功,下图显示插入成功。 <br> <img src="http://img.blog.csdn.net/20170224224045115?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""></li> <li>然后登录实际的数据库,看分表是否成功。下图显示分表成功。 <br> <img src="http://img.blog.csdn.net/20170224224232575?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzQ2NzQ0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描述" title=""> <br> 图上显示,插入的users表中的数据全部在db01中,而item表中的数据通过Id取模后均匀的分布在db02和db03中。这样就根据实际的路由策略进行了分表。</li> <li><strong>测试完成!!~数据进行了分库分表!</strong></li> </ul> <h2 id="参考文章"><a name="t6"></a>参考文章</h2> <p><a href="http://blog.csdn.net/kk185800961/article/details/51147029" target="\_blank">1. MySQL 高可用:mysql+mycat实现数据库分片(分库分表)</a></p> </div> <link rel="stylesheet" href="http://csdnimg.cn/release/phoenix/production/markdown\_views-d4dade9c33.css"> </div>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

springboot下静态资源的处理(转)

<divid"article\_content"class"article\_contentcsdntrackingstatisticstrackingclick"datamod"popu\_519"datadsm"post"style"overflow:hidden;"<divstyle"whitespace

java图形验证码生成工具类及web页面校验验证码

<divid"article\_content"class"article\_contentcsdntrackingstatisticstrackingclick"datamod"popu\_519"datadsm"post"style"overflow:hidden;"<divclass"htmledit\_vi

java bigdemical比较大小

<divid"article\_content"class"article\_contentclearfixcsdntrackingstatistics"datapid"blog"datamod"popu\_307"datadsm"post"<divclass"articlecopyright"<svgcla