优化:文章目录结构(某分类/YYYY/MM/dd/xxx.md)

This commit is contained in:
2022-08-02 21:51:39 +08:00
parent ab4d8e680a
commit 992ad0127c
49 changed files with 57 additions and 52 deletions

View File

@@ -64,15 +64,15 @@ INSERT INTO `user` VALUES (5, 'Billie', 24, 'Billie@126.com');
要使用 MyBatis 框架,第一步就是下载好 MyBatis 的 jar 包,我们可以从 [MyBatis](https://github.com/mybatis/mybatis-3/releases) 在 GitHub 上的开源地址下载。
![202111232222518](../../../public/img/2021/11/202111232222518.png)
![202012252222518](../../../public/img/2020/12/25/202012252222518.png)
笔者下载了 MyBatis 的核心压缩包mybatis-x.x.x.zip及其源码包mybatis-x-mybatis-x.x.x.zip
![202111232222812](../../../public/img/2021/11/202111232222812.png)
![202012252222738](../../../public/img/2020/12/25/202012252222738.png)
解压开 **mybatis-3.5.6.zip** 压缩包,目录结构如下:
![202111232222738](../../../public/img/2021/11/202111232222738.png)
![202012252222812](../../../public/img/2020/12/25/202012252222812.png)
::: tip 笔者说
如果 GitHub 下载太慢,可以前往 [FastGit](https://hub.fastgit.org/mybatis/mybatis-3/releases/tag/mybatis-3.5.6) 进行下载,它是 GitHub 的镜像地址,网站界面等各方面与 GitHub 几乎一模一样。
@@ -83,7 +83,7 @@ INSERT INTO `user` VALUES (5, 'Billie', 24, 'Billie@126.com');
下载好依赖之后,我们通过 Eclipse创建一个动态 Web 项目,并将刚才下载的 jar 包和指定数据库驱动包添加到 WebConent\WEB-INF\lib 目录,效果如下:
![202111232223708](../../../public/img/2021/11/202111232223708.png)
![202012252223067](../../../public/img/2020/12/25/202012252223067.png)
::: tip 笔者说
本次我们不会使用到 Servlet API所以创建一个普通 Java 工程也没问题。
@@ -202,7 +202,7 @@ log4j.appender.CONSOLE.layout.ConversionPattern=[demo] %d{yyyy-MM-dd HH:mm:ss,SS
当一切准备好之后,完整的项目目录结构如下:
![202111232223067](../../../public/img/2021/11/202111232223067.png)
![202012252223708](../../../public/img/2020/12/25/202012252223708.png)
创建好一个单元测试类,测试一下:

View File

@@ -17,7 +17,7 @@ tags:
在 API 使用层面MyBatis 的核心类型有三个分别是SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。
![202111242243280](../../../public/img/2021/11/202111242243280.png)
![202012252243280](../../../public/img/2020/12/25/202012252243280.png)
## SqlSessionFactoryBuilder
@@ -179,8 +179,6 @@ void testSelectList() throws IOException {
}
```
![202111242245992](../../../public/img/2021/11/202111242245992.jpg)
::: info 笔者说
对于技术的学习,笔者一贯遵循的步骤是:先用最最简单的 demo 让它跑起来,然后学学它的最最常用 API 和 配置让自己能用起来,最后熟练使用的基础上,在空闲时尝试阅读它的源码让自己能够洞彻它的运行机制,部分问题出现的原因,同时借鉴这些技术实现来提升自己的代码高度。
所以在笔者的文章中,前期基本都是小白文,仅仅穿插很少量的源码研究。当然等小白文更新多了,你们还依然喜欢,后期会不定时专门对部分技术的源码进行解析。

View File

@@ -38,7 +38,7 @@ configuration 根节点
::: tip 笔者说
这些标签在使用时一定要注意标签的顺序和允许使用次数。Eclipse 中可以通过在标签上按 F2 查看该标签下的内容模型,即标签的顺序和允许使用次数。你看下图中画圈处就是各个标签的顺序,后面的 ?号 代表指定标签最多允许使用一次。
:::
![202111242251170](../../../public/img/2021/11/202111242251170.png)
![202012262251170](../../../public/img/2020/12/26/202012262251170.png)
## properties元素
@@ -352,7 +352,7 @@ mappers 元素的作用就是用来告诉 MyBatis 去哪找我们编写的 SQL
### 指定映射文件
这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01.快速入门) 中使用的就是属于这类方式。它有两种实现:
这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01-快速入门) 中使用的就是属于这类方式。它有两种实现:
```xml
<!-- 使用相对于类路径的资源引用,有多少 SQL 映射文件就写多少个 mapper 配置 -->
@@ -395,7 +395,7 @@ public interface UserMapper {
}
```
![202111242252221](../../../public/img/2021/11/202111242252221.png)
![202012262252221](../../../public/img/2020/12/26/202012262252221.png)
**第二步:将 SQL 映射文件的 namespace 值改为对应 Mapper 接口的全限定类名。**

View File

@@ -72,7 +72,7 @@ public class UserDaoImpl extends BaseDao implements UserDao {
有问题存在就不缺解决问题的人。在行业内随之诞生了大量的持久层解决方案除了各自公司自研的方案之外比较有名的通用开源方案有Hibernate、MyBatis等各有各的优劣势在此我先不谈论它们的区别只说一个现象在国内来讲MyBatis应用相对广泛。
![202111232219533](../../public/img/2021/11/202111232219533.png)
![202012252219533](../../public/img/2020/12/25/202012252219533.png)
所以那没什么好说的了,直接学吧?
@@ -86,14 +86,14 @@ MyBatis读音是:[mai'bətɪs](买杯涕死),原是 Apache 软件基金会
MyBatis 是一款优秀的 **半自动的持久层ORM框架** ,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects普通老式 Java 对象)为数据库中的记录。
当前最新版本是MyBatis 3.5.6 其发布时间是2020年10月6日。[1]
![202111232221059](../../public/img/2021/11/202111232221059.png)
![202012252221059](../../public/img/2020/12/25/202012252221059.png)
:::
::: details **1.什么是 ORM ** [2]
ORM对象关系映射Object Relation Mapping简称ORM或O/RM或O/R Mapping它是随着面向对象的软件开发方法发展而产生的。
面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射( ORM )系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
![202111232221734](../../public/img/2021/11/202111232221734.png)
![202012252221734](../../public/img/2020/12/25/202012252221734.png)
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。