一、Mybatis介绍
1. Mybatis官网及源码
Mybatis官网:https://mybatis.org/mybatis-3/zh/index.html
Mybatis源码:https://github.com/mybatis/mybatis-3
2. 什么是Mybatis
关于什么是Mybatis框架,官方是这么给我们解释的:
- Mybatis是一个半自动的ORM(对象关系型映射)框架,它内部封装了JDBC,开发者开发时只需要关注如何编写SQL语句,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程,可以严格控制 sql 执行性能,灵活度高。
- MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了 几乎所有的 JDBC代码和手动设置参数以及获取结果集。
- MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
- 2013年11月迁移到Github。
3. Mybatis优缺点
- 优点
- 与原生的JDBC相比,较少了大量的冗余代码,不需要手动的创建并销毁连接
- 定制化SQL:SQL语句相当灵活,不会对现有的应用程序和数据库表的现有设计造成影响,SQL可以写在注解中或者xml映射文件中,实现了与程序代码间的解耦,便于统一管理;支持动态SQL,并且可以重用
- 对于很多数据库都兼容
- 与Spring框架能很好的集成
- 映射及高级映射:提供了映射标签,支持对象与数据库字段的映射(ORM - Object Relation Mapping)
- 普通映射(低级映射 一对一):表与实体类,表字段和实体类属性,表数据和实体类对象
- 高级映射(一对多,多对一):表字段和实体类属性不一致,或者关联查询,需要自定义映射关系
- 实体类:一中设计一个多的集合属性
- 实体类:多中设计一个一的对象属性
- 支持存储过程
- 缺点
- SQL语句编写工作量大,尤其对于多字段、多表的情况下,对于开发人员SQL语句功底有要求
- SQL语句语法依赖于数据库,导致数据库移植性差,不能随意更换数据库
二、Mybatis 之核心功能
- xml 映射 / 注解开发
Java | 数据库 |
---|---|
类 | 表 |
属性 | 字段/列 |
对象 | 记录/行 |
Java持久层接口 | Mybatis xml映射文件 |
---|---|
持久层接口的全路径名 | xml映射文件中namespace属性 |
持久层接口的方法名称 | xml映射文件中对应SQL语句的id值 |
- 动态SQL
三、Mybatis 之专栏安排
未完待续…