MyBatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
-
MyBatis前身是iBatis,本是Apache的一个开源的项目
-
官方网站 mybatis
-
mybaits是什么
-
ORM框架(O:对象,R:关系,M:映射) ,同类产品Hibernate
-
ORM框架建立java语言中O(对象)与数据库中的R(数据表)之间的M(对应的关系),可以编程方式去操作数据库
-
-
实体类和SQL语句之间建立映射关系
-
-
特点
-
基于SQL语法,简单易学
-
能了解底层封装过程
-
SQL语句封装在配置文件中,便于统一管理与维护,降低程序的耦合度
-
方便程序代码调试
-
MyBatis框架优缺点
-
优点
-
与JDBC相比,减少了50%以上的代码量
-
最简单的持久化框架,小巧并简单易学
-
SQL代码从程序代码中彻底分离,可重用
-
提供XML标签,支持编写动态SQL
-
提供映射标签,支持对象与数据库的ORM字段映射
-
-
缺点
-
SQL语句编写工作量大,对开发人员有一定要求
-
数据库移植性差
-
MyBatis基本要素
MyBatis的核心对象
-
SqlSessionFactoryBuilder
-
SqlSessionFactory
-
SqlSession
核心配置文件
mybatis-config.xml,名称可以任意
映射文件
XXXMapper.xml
SqlSessionFactoryBuilder----build()--->2.SqlSessionFactory---openSession()--->3.SqlSession
SqlSessionFactoryBuilder
用过即丢,其生命周期只存在于方法体内
可重用其来创建多个 SqlSessionFactory 实例
负责构建SqlSessionFactory,并提供多个build方法的重载
SqlSessionFactory
SqlSessionFactory是每个MyBatis应用的核心。作用:创建SqlSession实例
作用域:Application,生命周期与应用的生命周期相同
单例:存在于整个应用运行时,并且同时只存在一个对象实例
SqlSession
包含了执行SQL所需的所有方法
对应一次数据库会话,会话结束必须关闭
线程级别,不能共享
SqlSession的两种使用方式
通过SqlSession实例直接运行映射的SQL语句
基于Mapper接口方式操作数据