优化:文章目录结构(某分类/YYYY/MM/dd/xxx.md)
This commit is contained in:
@@ -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 上的开源地址下载。
|
||||
|
||||

|
||||

|
||||
|
||||
笔者下载了 MyBatis 的核心压缩包(mybatis-x.x.x.zip)及其源码包(mybatis-x-mybatis-x.x.x.zip)。
|
||||
|
||||

|
||||

|
||||
|
||||
解压开 **mybatis-3.5.6.zip** 压缩包,目录结构如下:
|
||||
|
||||

|
||||

|
||||
|
||||
::: 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 目录,效果如下:
|
||||
|
||||

|
||||

|
||||
|
||||
::: tip 笔者说
|
||||
本次我们不会使用到 Servlet API,所以创建一个普通 Java 工程也没问题。
|
||||
@@ -202,7 +202,7 @@ log4j.appender.CONSOLE.layout.ConversionPattern=[demo] %d{yyyy-MM-dd HH:mm:ss,SS
|
||||
|
||||
当一切准备好之后,完整的项目目录结构如下:
|
||||
|
||||

|
||||

|
||||
|
||||
创建好一个单元测试类,测试一下:
|
||||
|
||||
@@ -17,7 +17,7 @@ tags:
|
||||
|
||||
在 API 使用层面,MyBatis 的核心类型有三个,分别是:SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession。
|
||||
|
||||

|
||||

|
||||
|
||||
## SqlSessionFactoryBuilder
|
||||
|
||||
@@ -179,8 +179,6 @@ void testSelectList() throws IOException {
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
::: info 笔者说
|
||||
对于技术的学习,笔者一贯遵循的步骤是:先用最最简单的 demo 让它跑起来,然后学学它的最最常用 API 和 配置让自己能用起来,最后熟练使用的基础上,在空闲时尝试阅读它的源码让自己能够洞彻它的运行机制,部分问题出现的原因,同时借鉴这些技术实现来提升自己的代码高度。
|
||||
所以在笔者的文章中,前期基本都是小白文,仅仅穿插很少量的源码研究。当然等小白文更新多了,你们还依然喜欢,后期会不定时专门对部分技术的源码进行解析。
|
||||
@@ -38,7 +38,7 @@ configuration 根节点
|
||||
::: tip 笔者说
|
||||
这些标签在使用时一定要注意标签的顺序和允许使用次数。Eclipse 中可以通过在标签上按 F2 查看该标签下的内容模型,即标签的顺序和允许使用次数。你看下图中画圈处就是各个标签的顺序,后面的 ?号 代表指定标签最多允许使用一次。
|
||||
:::
|
||||

|
||||

|
||||
|
||||
## properties元素
|
||||
|
||||
@@ -352,7 +352,7 @@ mappers 元素的作用就是用来告诉 MyBatis 去哪找我们编写的 SQL
|
||||
|
||||
### 指定映射文件
|
||||
|
||||
这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01.快速入门) 中使用的就是属于这类方式。它有两种实现:
|
||||
这类方式主要是告诉 MyBatis 我们所编写的 SQL 映射文件的地址,我们之前在 [《快速入门》](./01-快速入门) 中使用的就是属于这类方式。它有两种实现:
|
||||
|
||||
```xml
|
||||
<!-- 使用相对于类路径的资源引用,有多少 SQL 映射文件就写多少个 mapper 配置 -->
|
||||
@@ -395,7 +395,7 @@ public interface UserMapper {
|
||||
}
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
**第二步:将 SQL 映射文件的 namespace 值改为对应 Mapper 接口的全限定类名。**
|
||||
|
||||
@@ -72,7 +72,7 @@ public class UserDaoImpl extends BaseDao implements UserDao {
|
||||
|
||||
有问题存在,就不缺解决问题的人。在行业内随之诞生了大量的持久层解决方案,除了各自公司自研的方案之外,比较有名的通用开源方案有:Hibernate、MyBatis等,各有各的优劣势,在此我先不谈论它们的区别,只说一个现象:在国内来讲MyBatis应用相对广泛。
|
||||
|
||||

|
||||

|
||||
|
||||
所以那没什么好说的了,直接学吧?
|
||||
|
||||
@@ -86,14 +86,14 @@ MyBatis读音是:[mai'bətɪs](买杯涕死),原是 Apache 软件基金会
|
||||
MyBatis 是一款优秀的 **半自动的持久层ORM框架** ,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
|
||||
|
||||
当前,最新版本是MyBatis 3.5.6 ,其发布时间是2020年10月6日。[1]
|
||||

|
||||

|
||||
:::
|
||||
|
||||
::: details **1.什么是 ORM ?** [2]
|
||||
ORM,对象关系映射(Object Relation Mapping,简称ORM,或O/RM,或O/R Mapping),它是随着面向对象的软件开发方法发展而产生的。
|
||||
|
||||
面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射( ORM )系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
|
||||

|
||||

|
||||
|
||||
面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user