<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>phjhq's Blog</title><link>https://houjinghao123.github.io/</link><description>Recent content on phjhq's Blog</description><image><title>phjhq's Blog</title><url>https://i.postimg.cc/7hwBy7VS/calcr.png</url><link>https://i.postimg.cc/7hwBy7VS/calcr.png</link></image><generator>Hugo -- 0.134.1</generator><language>zh</language><copyright>©2024 phjhq&amp;rsquo;s Blog</copyright><lastBuildDate>Fri, 03 Apr 2026 13:20:02 +0800</lastBuildDate><atom:link href="https://houjinghao123.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>单元测试</title><link>https://houjinghao123.github.io/posts/maven/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/</link><pubDate>Fri, 03 Apr 2026 13:20:02 +0800</pubDate><guid>https://houjinghao123.github.io/posts/maven/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/</guid><description>&lt;h1 id="maven-单元测试笔记">Maven 单元测试笔记&lt;/h1>
&lt;h2 id="1-单元测试概述">1. 单元测试概述&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>定义&lt;/strong>：针对最小的功能单元（方法），编写测试代码对其正确性进行测试。&lt;/li>
&lt;li>&lt;strong>目的&lt;/strong>：检验软件基本组成单位的正确性。&lt;/li>
&lt;li>&lt;strong>测试人员&lt;/strong>：开发人员。&lt;/li>
&lt;li>&lt;strong>测试类型&lt;/strong>：白盒测试（清楚软件内部结构、代码逻辑，用于验证代码、逻辑正确性）。&lt;/li>
&lt;/ul>
&lt;h2 id="2-junit-单元测试框架">2. JUnit 单元测试框架&lt;/h2>
&lt;h3 id="21-junit-简介">2.1 JUnit 简介&lt;/h3>
&lt;ul>
&lt;li>最流行的 Java 测试框架之一。&lt;/li>
&lt;li>提供功能方便程序进行单元测试（由第三方公司提供）。&lt;/li>
&lt;/ul>
&lt;h3 id="22-junit-vs-main-方法测试">2.2 JUnit vs main 方法测试&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">对比项&lt;/th>
&lt;th style="text-align: left">main 方法测试&lt;/th>
&lt;th style="text-align: left">JUnit 单元测试&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">代码维护&lt;/td>
&lt;td style="text-align: left">测试代码与源代码未分开，难维护&lt;/td>
&lt;td style="text-align: left">测试代码与源代码分开，便于维护&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">测试影响&lt;/td>
&lt;td style="text-align: left">一个方法测试失败，影响后面方法&lt;/td>
&lt;td style="text-align: left">一个测试方法执行失败，不会影响其它测试方法&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">自动化&lt;/td>
&lt;td style="text-align: left">无法自动化测试，无法得到测试报告&lt;/td>
&lt;td style="text-align: left">可根据需要进行自动化测试，可自动生成测试报告&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="23-使用步骤">2.3 使用步骤&lt;/h3>
&lt;ol>
&lt;li>在 &lt;code>pom.xml&lt;/code> 中引入 JUnit 依赖：
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-xml" data-lang="xml">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="nt">&amp;lt;dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl"> &lt;span class="nt">&amp;lt;groupId&amp;gt;&lt;/span>org.junit.jupiter&lt;span class="nt">&amp;lt;/groupId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">3&lt;/span>&lt;span class="cl"> &lt;span class="nt">&amp;lt;artifactId&amp;gt;&lt;/span>junit-jupiter&lt;span class="nt">&amp;lt;/artifactId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">4&lt;/span>&lt;span class="cl"> &lt;span class="nt">&amp;lt;version&amp;gt;&lt;/span>5.9.1&lt;span class="nt">&amp;lt;/version&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">5&lt;/span>&lt;span class="cl">&lt;span class="nt">&amp;lt;/dependency&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pr</description></item><item><title>SpringBoot配置热部署的几种方式</title><link>https://houjinghao123.github.io/posts/springboot%E9%85%8D%E7%BD%AE%E7%83%AD%E9%83%A8%E7%BD%B2/</link><pubDate>Fri, 08 Nov 2024 23:09:14 +0800</pubDate><guid>https://houjinghao123.github.io/posts/springboot%E9%85%8D%E7%BD%AE%E7%83%AD%E9%83%A8%E7%BD%B2/</guid><description>&lt;h1 id="springboot热部署">SpringBoot热部署&lt;/h1>
&lt;p>最近在写一些项目在进行调试和修改总需要手动重启很麻烦，于是就想到了对项目进行热部署。然后就在网上搜集了一些热部署相关的内容，在这里总结一下，方便自己使用。&lt;/p></description></item><item><title>SpringSecurity+JWT</title><link>https://houjinghao123.github.io/posts/springsecurity+jwt/</link><pubDate>Mon, 28 Oct 2024 15:35:20 +0800</pubDate><guid>https://houjinghao123.github.io/posts/springsecurity+jwt/</guid><description>&lt;h1 id="springsecurityjwt实现登录认证和鉴权">SpringSecurity+JWT实现登录认证和鉴权&lt;/h1>
&lt;h2 id="1准备基本环境">1、准备基本环境&lt;/h2>
&lt;p>使用基础版的项目环境、然后我们在redis中存储用户相关信息，将用户信息存入到token中&lt;/p></description></item><item><title>SpringSecurity学习</title><link>https://houjinghao123.github.io/posts/springsecurity%E5%AD%A6%E4%B9%A0/</link><pubDate>Thu, 24 Oct 2024 23:30:35 +0800</pubDate><guid>https://houjinghao123.github.io/posts/springsecurity%E5%AD%A6%E4%B9%A0/</guid><description>&lt;h1 id="springsecurity学习">SpringSecurity学习&lt;/h1>
&lt;h2 id="1什么是springsecurity">1、什么是SpringSecurity&lt;/h2>
&lt;p>&lt;strong>Spring Security&lt;/strong> 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架&lt;strong>Shiro&lt;/strong>，它提供了更丰富的功能，社区资源也比Shiro丰富。&lt;/p></description></item><item><title>DockerFile和DockerCompose基本使用</title><link>https://houjinghao123.github.io/posts/dockerfile%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/</link><pubDate>Wed, 16 Oct 2024 13:53:02 +0800</pubDate><guid>https://houjinghao123.github.io/posts/dockerfile%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/</guid><description>&lt;h1 id="dockerfile的基本使用">DockerFile的基本使用&lt;/h1>
&lt;h2 id="为什么要使用">为什么要使用&lt;/h2>
&lt;p>之前的方式去部署应用还是有点繁琐，因为之前使用的镜像并不能很好的符合我们自己的需求。&lt;/p></description></item><item><title>Docker在Ubuntu上部署项目案例</title><link>https://houjinghao123.github.io/posts/docker%E5%9C%A8ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85mysql%E5%92%8Credis/</link><pubDate>Tue, 15 Oct 2024 11:47:16 +0800</pubDate><guid>https://houjinghao123.github.io/posts/docker%E5%9C%A8ubuntu%E4%B8%8A%E5%AE%89%E8%A3%85mysql%E5%92%8Credis/</guid><description>&lt;h1 id="使用三更的博客项目进行部署测试">使用三更的博客项目进行部署测试&lt;/h1>
&lt;h2 id="安装mysql">安装Mysql&lt;/h2>
&lt;p>安装前明确需求&lt;/p>
&lt;ul>
&lt;li>
&lt;p>使用的镜像是mysql5.7&lt;/p></description></item><item><title>Docker 数据卷 网桥</title><link>https://houjinghao123.github.io/posts/docker-%E9%95%9C%E5%83%8F_%E5%AE%B9%E5%99%A8_%E6%95%B0%E6%8D%AE%E5%8D%B7/</link><pubDate>Mon, 14 Oct 2024 19:55:51 +0800</pubDate><guid>https://houjinghao123.github.io/posts/docker-%E9%95%9C%E5%83%8F_%E5%AE%B9%E5%99%A8_%E6%95%B0%E6%8D%AE%E5%8D%B7/</guid><description>&lt;h1 id="镜像">镜像&lt;/h1>
&lt;h2 id="如何查看镜像的详细信息">如何查看镜像的详细信息&lt;/h2>
&lt;p>&lt;strong>方法&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">docker image inspect &lt;span class="o">[&lt;/span>OPTIONS&lt;span class="o">]&lt;/span> IMAGE &lt;span class="o">[&lt;/span>IMAGE...&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="ln">2&lt;/span>&lt;span class="cl">docker image inspect 镜像id
&lt;/span>&lt;/span>&lt;/code>&lt;/pr</description></item><item><title>Docker Run命令详解</title><link>https://houjinghao123.github.io/posts/docker-run%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</link><pubDate>Sun, 13 Oct 2024 16:48:15 +0800</pubDate><guid>https://houjinghao123.github.io/posts/docker-run%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/</guid><description>&lt;p>#Run命令详解&lt;/p>
&lt;h2 id="-p-端口对外发布端口映射">-p 端口对外发布（端口映射）&lt;/h2>
&lt;h3 id="解释">解释&lt;/h3>
&lt;p>为了使外部网络能够访问到容器&lt;/p></description></item><item><title>Docker命令</title><link>https://houjinghao123.github.io/posts/docker%E5%91%BD%E4%BB%A4/</link><pubDate>Sat, 05 Oct 2024 17:49:22 +0800</pubDate><guid>https://houjinghao123.github.io/posts/docker%E5%91%BD%E4%BB%A4/</guid><description>&lt;h2 id="镜像和容器相关命令">镜像和容器相关命令&lt;/h2>
&lt;h3 id="搜索镜像">搜索镜像&lt;/h3>
&lt;ul>
&lt;li>使用Docker自带的搜索命令可能会因为网络问题搜索失败&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">docker search contains name:vesion
&lt;/span>&lt;/span>&lt;/code>&lt;/pr</description></item><item><title>Ubuntu上Docker安装</title><link>https://houjinghao123.github.io/posts/docker%E5%AE%89%E8%A3%85/</link><pubDate>Sat, 05 Oct 2024 17:31:39 +0800</pubDate><guid>https://houjinghao123.github.io/posts/docker%E5%AE%89%E8%A3%85/</guid><description>&lt;h2 id="概述">概述&lt;/h2>
&lt;h3 id="什么是docker">什么是docker&lt;/h3>
&lt;p>Docker是一个应用容器引擎。 一个容器可以理解成是一个轻量级的虚拟机。但是又和虚拟机有些不同。&lt;/p></description></item><item><title>InnoDB详解</title><link>https://houjinghao123.github.io/posts/innodb%E8%AF%A6%E8%A7%A3/</link><pubDate>Wed, 02 Oct 2024 18:17:59 +0800</pubDate><guid>https://houjinghao123.github.io/posts/innodb%E8%AF%A6%E8%A7%A3/</guid><description>&lt;h2 id="1逻辑存储结构">1、逻辑存储结构&lt;/h2>
&lt;p>&lt;img loading="lazy" src="https://cdn.nlark.com/yuque/0/2024/png/49057062/1727766135694-2cc9063a-a21b-45b9-ad26-34c9691c6f26.png" alt="" />
&lt;/p>
&lt;p>1）表空间&lt;/p>
&lt;p>表空间是InnoDB存储引擎逻辑结构的最高层， 如果用户启用了参数 innodb_file_per_table(在 8.0版本中默认开启) ，则每张表都会有一个表空间（xxx.ibd），一个mysql实例可以对应多个表空 间，用于存储记录、索引等数 据。&lt;/p></description></item><item><title>MySQL锁</title><link>https://houjinghao123.github.io/posts/mysql%E9%94%81/</link><pubDate>Tue, 01 Oct 2024 13:21:57 +0800</pubDate><guid>https://houjinghao123.github.io/posts/mysql%E9%94%81/</guid><description>&lt;h1 id="mysql锁">&lt;strong>MySQL锁&lt;/strong>&lt;/h1>
&lt;h2 id="1概述">&lt;strong>1、概述&lt;/strong>&lt;/h2>
&lt;p>如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题，锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说，锁对数据库而言显得尤其重要，也更加复杂。&lt;/p></description></item><item><title>MySQL触发器</title><link>https://houjinghao123.github.io/posts/mysql%E8%A7%A6%E5%8F%91%E5%99%A8/</link><pubDate>Sun, 29 Sep 2024 17:34:22 +0800</pubDate><guid>https://houjinghao123.github.io/posts/mysql%E8%A7%A6%E5%8F%91%E5%99%A8/</guid><description>&lt;h1 id="触发器">&lt;strong>触发器&lt;/strong>&lt;/h1>
&lt;h2 id="1介绍">&lt;strong>1.介绍&lt;/strong>&lt;/h2>
&lt;p>触发器是与表有关的数据库对象，指在insert/update/delete之前(BEFORE)或之后(AFTER)，触发并执行触发器中定义的SQL语句集合。&lt;/p></description></item><item><title>MySQL视图和存储过程</title><link>https://houjinghao123.github.io/posts/%E8%A7%86%E5%9B%BE%E5%92%8C%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/</link><pubDate>Sun, 29 Sep 2024 15:21:23 +0800</pubDate><guid>https://houjinghao123.github.io/posts/%E8%A7%86%E5%9B%BE%E5%92%8C%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/</guid><description>&lt;h1 id="视图-存储过程">&lt;strong>视图-存储过程&lt;/strong>&lt;/h1>
&lt;h2 id="一视图">&lt;strong>一、视图&lt;/strong>&lt;/h2>
&lt;h3 id="11介绍">&lt;strong>1.1介绍&lt;/strong>&lt;/h3>
&lt;p>视图（View）是一种虚拟存在的表。视图中的数据并不在数据库中实际存在，行和列数据来自定义视图的查询中使用的表，并且是在使用视图时动态生成的。&lt;/p></description></item><item><title>SQL优化</title><link>https://houjinghao123.github.io/posts/sql%E4%BC%98%E5%8C%96/</link><pubDate>Fri, 27 Sep 2024 09:13:15 +0800</pubDate><guid>https://houjinghao123.github.io/posts/sql%E4%BC%98%E5%8C%96/</guid><description>&lt;h1 id="sql优化">&lt;strong>SQL优化&lt;/strong>&lt;/h1>
&lt;h2 id="插入数据">&lt;strong>插入数据&lt;/strong>&lt;/h2>
&lt;h3 id="insert">&lt;strong>insert&lt;/strong>&lt;/h3>
&lt;p>假设我们需要插入大量数据，那么有哪些方法呢？&lt;/p>
&lt;ul>
&lt;li>批量插入数据&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-mysql" data-lang="mysql">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">tb_test&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">values&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Tom&amp;#39;&lt;/span>&lt;span class="p">),(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Cat&amp;#39;&lt;/span>&lt;span class="p">),(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Jerry&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pr</description></item><item><title>复习数据结构二叉树</title><link>https://houjinghao123.github.io/posts/%E5%A4%8D%E4%B9%A0%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%A0%91/</link><pubDate>Tue, 24 Sep 2024 18:56:07 +0800</pubDate><guid>https://houjinghao123.github.io/posts/%E5%A4%8D%E4%B9%A0%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%A0%91/</guid><description>&lt;h1 id="复习数据结构二叉树">复习数据结构二叉树&lt;/h1>
&lt;h2 id="什么是二叉树">什么是二叉树？&lt;/h2>
&lt;p>二叉树（binary tree）是一种非线性数据结构，代表“祖先”与“后代”之间的派生关系，体现了“一分为二”的分治逻辑。与链表类似，二叉树的基本单元是节点，每个节点包含值、左子节点引用和右子节点引用。每个节点都有两个引用（指针），分别指向左子节点（left-child node）和右子节点（right-child node），该节点被称为这两个子节点的父节点（parent node）。当给定一个二叉树的节点时，我们将该节点的左子节点及其以下节点形成的树称为该节点的左子树（left subtree），同理可得右子树（right subtree）。&lt;/p></description></item><item><title>Mysql存储引擎</title><link>https://houjinghao123.github.io/posts/mysql%E5%BC%95%E6%93%8E%E4%BB%8B%E7%BB%8D/</link><pubDate>Sat, 21 Sep 2024 14:04:10 +0800</pubDate><guid>https://houjinghao123.github.io/posts/mysql%E5%BC%95%E6%93%8E%E4%BB%8B%E7%BB%8D/</guid><description>&lt;h1 id="一mysql存储引擎">&lt;strong>一、Mysql存储引擎&lt;/strong>&lt;/h1>
&lt;h2 id="1mysql的体系结构">&lt;strong>1.Mysql的体系结构&lt;/strong>&lt;/h2>
&lt;p>&lt;img loading="lazy" src="https://i.postimg.cc/MpV3xV4W/screenshot-16.png" alt="" />
&lt;/p>
&lt;ol>
&lt;li>连接层&lt;/li>
&lt;li>服务层&lt;/li>
&lt;li>引擎层&lt;/li>
&lt;li>存储层&lt;/li>
&lt;/ol>
&lt;h2 id="2存储引擎介绍">&lt;strong>2.存储引擎介绍&lt;/strong>&lt;/h2>
&lt;p>存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的，而不是基于库的，&lt;code>所以存储引擎也可被称为表类型&lt;/code> 。我们可以在创建表的时候，来指定选择的存储引擎，如果没有指定将自动选择默认的存储引擎(InnoDB)。&lt;/p></description></item><item><title>Mysql事务</title><link>https://houjinghao123.github.io/posts/mysql%E4%BA%8B%E5%8A%A1/</link><pubDate>Fri, 20 Sep 2024 14:04:10 +0800</pubDate><guid>https://houjinghao123.github.io/posts/mysql%E4%BA%8B%E5%8A%A1/</guid><description>&lt;h1 id="事务">事务&lt;/h1>
&lt;p>事务 是一组操作的集合，它是一个不可分割的工作单位，事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求，即这些操作要么同时成功，要么同时失败。&lt;/p></description></item><item><title>Mysql常用函数</title><link>https://houjinghao123.github.io/posts/mysql%E5%B8%B8%E7%94%A8%E5%87%BD%E6%95%B0/</link><pubDate>Thu, 19 Sep 2024 20:02:09 +0800</pubDate><guid>https://houjinghao123.github.io/posts/mysql%E5%B8%B8%E7%94%A8%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="mysql常用函数">Mysql常用函数&lt;/h1>
&lt;p>&lt;img src="https://i.postimg.cc/cJQ332yQ/screenshot-12.png" />&lt;br>&lt;/p>
&lt;h2 id="聚合函数">&lt;strong>聚合函数&lt;/strong>&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">函数&lt;/th>
&lt;th style="text-align: left">功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">count&lt;/td>
&lt;td style="text-align: left">统计数量&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">max&lt;/td>
&lt;td style="text-align: left">最大值&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">min&lt;/td>
&lt;td style="text-align: left">最小值&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">avg&lt;/td>
&lt;td style="text-align: left">平均值&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">sum&lt;/td>
&lt;td style="text-align: left">求和&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="字符串函数">&lt;strong>字符串函数&lt;/strong>&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">函数&lt;/th>
&lt;th style="text-align: left">功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">CONCAT(S1,S2,&amp;hellip;Sn)&lt;/td>
&lt;td style="text-align: left">字符串拼接，将S1，S2，&amp;hellip; Sn拼接成一个字符串&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">LOWER(str)&lt;/td>
&lt;td style="text-align: left">将字符串str全部转为小写&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">UPPER(str)&lt;/td>
&lt;td style="text-align: left">将字符串str全部转为大写&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">LPAD(str,n,pad)&lt;/td>
&lt;td style="text-align: left">左填充，用字符串pad对str的左边进行填充，达到n个字符串长度&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">RPAD(str,n,pad)&lt;/td>
&lt;td style="text-align: left">右填充，用字符串pad对str的右边进行填充，达到n个字符串长度&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">TRIM(str)&lt;/td>
&lt;td style="text-align: left">去掉字符串头部和尾部的空格&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">SUBSTRING(str,start,len)&lt;/td>
&lt;td style="text-align: left">返回从字符串str从start位置起的len个长度的字符串&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="数值函数">&lt;strong>数值函数&lt;/strong>&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">函数&lt;/th>
&lt;th style="text-align: left">功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">CEIL(x)&lt;/td>
&lt;td style="text-align: left">向上取整&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">FLOOR(x)&lt;/td>
&lt;td style="text-align: left">向下取整&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">MOD(x,y)&lt;/td>
&lt;td style="text-align: left">返回x/y的模&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">RAND()&lt;/td>
&lt;td style="text-align: left">返回0~1内的随机数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">ROUND(x,y)&lt;/td>
&lt;td style="text-align: left">求参数x的四舍五入的值，保留y位小数&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>例题：&lt;br>
通过数据库的函数，生成一个六位数的随机验证码。&lt;/p></description></item><item><title>Stop Hyper V</title><link>https://houjinghao123.github.io/posts/stop-hyper-v/</link><pubDate>Thu, 12 Sep 2024 14:38:59 +0800</pubDate><guid>https://houjinghao123.github.io/posts/stop-hyper-v/</guid><description>&lt;h1 id="配置硬件加速">配置硬件加速&lt;/h1>
&lt;h2 id="使用sdk-管理器安装">使用SDK 管理器安装&lt;/h2>
&lt;p>1.选择Tools&amp;gt;SDK Manger&lt;br>
&lt;img src="https://i.postimg.cc/g2zgzhDN/screenshot-9.png" />&lt;/p></description></item><item><title>Java集合复习</title><link>https://houjinghao123.github.io/posts/java%E9%9B%86%E5%90%88%E5%A4%8D%E4%B9%A0/</link><pubDate>Wed, 11 Sep 2024 13:57:35 +0800</pubDate><guid>https://houjinghao123.github.io/posts/java%E9%9B%86%E5%90%88%E5%A4%8D%E4%B9%A0/</guid><description>&lt;h1 id="java集合简介">java集合简介&lt;/h1>
&lt;h2 id="一集合基本的关系结构">一、集合基本的关系结构&lt;/h2>
&lt;p>Collection 接口的接口 对象的集合（单列集合）&lt;/p></description></item><item><title>MySQL的基本操作</title><link>https://houjinghao123.github.io/posts/my-first-post/</link><pubDate>Tue, 10 Sep 2024 16:55:14 +0800</pubDate><guid>https://houjinghao123.github.io/posts/my-first-post/</guid><description>&lt;h1 id="mysql的基本操作">MySQL的基本操作&lt;/h1>
&lt;p>1、查看所有的数据库&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-mysql" data-lang="mysql">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="k">show&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">datebases&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>2、创建自己的数据库&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-mysql" data-lang="mysql">&lt;span class="line">&lt;span class="ln">1&lt;/span>&lt;span class="cl">&lt;span class="k">create&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">datebase&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="err">数据库名字&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pr</description></item><item><title>测试</title><link>https://houjinghao123.github.io/java/%E6%B5%8B%E8%AF%95%E7%94%A8/</link><pubDate>Tue, 10 Sep 2024 16:55:14 +0800</pubDate><guid>https://houjinghao123.github.io/java/%E6%B5%8B%E8%AF%95%E7%94%A8/</guid><description/></item><item><title/><link>https://houjinghao123.github.io/posts/kotlin%E5%85%A5%E9%97%A8%E4%B9%8B%E5%8F%98%E9%87%8F%E4%B8%8E%E5%87%BD%E6%95%B0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://houjinghao123.github.io/posts/kotlin%E5%85%A5%E9%97%A8%E4%B9%8B%E5%8F%98%E9%87%8F%E4%B8%8E%E5%87%BD%E6%95%B0/</guid><description>&lt;h1 id="kotlin入门之变量与基本的程序结构">Kotlin入门之变量与基本的程序结构&lt;/h1>
&lt;h2 id="变量">变量&lt;/h2>
&lt;p>在Kontlin中变量的声明和基本使用是和Java不太相同的。&lt;/p></description></item><item><title>友链</title><link>https://houjinghao123.github.io/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://houjinghao123.github.io/about/</guid><description>about</description></item></channel></rss>