2021年2月25日星期四

mybatis(1)

1.mybatis简介

在说mybatis之前,我们先来说一下ORM框架。

ORM(object Relational Mapping)对象关系映射,将程序中的一个对象与表中的一行数据一一对应。

如果我们要使用JDBC来完成ORM的操作,想一想我们需要多少操作?

首先导入关于操作数据库的类,然后建立连接,输入sql语句对数据库进行操作,如果是查询操作,我们还需要建立对象去接受查到的数据,最后关闭连接,返回相应值。

听起来不麻烦,但是当数据特别多的时候,这样的操作就显得复杂,所以我们需要一个框架来帮我们简化一下工程。

mybatis就是这样的框架,他省略了很多底层的操作,我们只需要配置相应文件,写出sql语句,剩下的mybatis都会帮我们解决。

MyBatis 是一个基于 Java 的持久层框架。MyBatis 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAO),它消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。

MyBatis 使用简单的

2.mybatis工作原理

2.1 读取配置文件

我们有一个mybatis-config.

下面是mybatis-cofig.

<?

2.2 加载映射文件

加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.

即上述的Mapper.

下面是简略的Mapper.

<?

2.3构造会话工厂并创建会话对象

通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。

由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build("加载的配置文件的信息");
SqlSession sqlSession = sqlSessionFactory.openSession();

3.3SqlSession对象完成和数据库的交互

UserDao mapper = sqlSession.getiMapper(UserDao.class);User user = mapper.xxx(接口中的方法)(参数);

a.用户程序调用mybatis接口层api(即Mapper接口中的方法)

b.SqlSession通过调用api的Statement ID找到对应的MappedStatement对象

c.通过Executor(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象

d.JDBC执行sql。

e.借助 MappedStatement 中的结果映射关系,将返回结果转化成 HashMap、JavaBean 等存储结构并返回。

3.mybatis核心组件

3.1SqlSessionFactoryBuilder(构造器)

SqlSessionFactoryBuilder这个类的作用就是为了创建SqlSessionFactory的,它会根据配置或者代码来生成 SqlSessionFactory,采用的是分步构建的 Builder 模式。

3.2SqlSessionFactory(工厂接口)

SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像,依靠它来生成 SqlSession,使用的是工厂模式。

3.3SqlSession(会话)

一个既可以发送 SQL 执行返回结果,也可以获取 Mapper 的接口。

3.4SQL Mapper(映射器)

MyBatis 新设计存在的组件,它由一个 Java 接口和

文章参考于Mybatis以及大佬博客。









原文转载:http://www.shaoqun.com/a/587590.html

跨境电商:https://www.ikjzd.com/

gtin:https://www.ikjzd.com/w/136

旺店通:https://www.ikjzd.com/w/2390


1.mybatis简介在说mybatis之前,我们先来说一下ORM框架。ORM(objectRelationalMapping)对象关系映射,将程序中的一个对象与表中的一行数据一一对应。如果我们要使用JDBC来完成ORM的操作,想一想我们需要多少操作?首先导入关于操作数据库的类,然后建立连接,输入sql语句对数据库进行操作,如果是查询操作,我们还需要建立对象去接受查到的数据,最后关闭连接,返回相应
bsci 认证:https://www.ikjzd.com/w/2339
联动优势:https://www.ikjzd.com/w/1921
飞书互动:https://www.ikjzd.com/w/1319
Shopee订单管理与售后的基本操作:https://www.ikjzd.com/tl/95752
亚马逊法国站不上传税号被封?如何合法规避税号问题:https://www.ikjzd.com/home/117921
口述:38年姐弟深情只是纯洁友谊(3/3):http://lady.shaoqun.com/m/a/41068.html