mybatis--先导篇

谈mybatis,首先要了解一下orm框架

ORM:对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM是实现持久化层(即数据存入硬件)的另一种模式,采用映射元数据(XML)来描述对象-关系的映射细节,使得ORM中间件能在任何一个Java应用的业务逻辑层和数据库之间充当桥梁。

 java中典型的采用ORM框架的有:dbutils,jdbctemplete,mybaits,hibernate,jpa

ORM通信流程
1.建立连接
2.登录数据库
3.java程序发送sql命令到数据库
4.接收到的数据封装返回

mybatis是持久层框架

一个半 ORM(对象关系映射)框架,需要自己手写sql语句。相对于MyBatis,Hibernate更加的复杂,沉重,是一个全自动的、完全面向对象的持久层框架。

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis可以使用XML或注解用于配置和原始映射,从而消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

MyBatis 四大核心

包括(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 注意,无论是映射器还是 SqlSession 都可以发送 SQL 到数据库执行。

1)SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成 SqlSessionFactory,采用的是分步构建的 Builder 模式。
2)SqlSessionFactory(工厂类抽象接口):依靠它来生成 SqlSession,使用的是工厂模式。SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由对它进行清除或重建,最简单的就是使用单例模式或者静态单例模式
3)SqlSession(增删改查实现类会话接口):一个既可以发送 SQL 执行返回结果,也可以获取 Mapper 的接口。在现有的技术中,一般我们会让其在业务逻辑代码中“消失”,而使用的是 MyBatis 提供的 SQL Mapper 接口编程技术,它能提高代码的可读性和可维护性。SqlSession 的实例不是线程安全的,因此是不能被共享
4)SQL Mapper(映射器):MyBatis 新设计存在的组件,它由一个 Java 接口和 XML 文件(或注解)构成,需要给出对应的 SQL 和映射规则。它负责发送 SQL 去执行,并返回结果。

核心概念

名称 意义
Configuration 管理mysql-config.xml全局配置关系类,生成流通过建造者模式创建Session管理工厂
SqlSessionFactory Session管理工厂接口,将解析的xml数据封装到Configuration,是SqlSession会话对象的工厂
Session Sqlssion是一个面向用户的接口,SqlSession提供了操作数据库的增删改查方法
Executor 执行器是一个接口(内部包含一二级缓存器),SqlSession内部通过调用执行器操作数据库
MapperStatement 底层封装对象,对数据库的操作存储封装,包括sql语句,输入输出参数
StatementHandler 具体操作数据库相关的handler接口
ResultSetHandler 具体操作数据库返回结果的handler接口

猜你喜欢

转载自blog.csdn.net/qq_41429436/article/details/122128148