一、简介
1、概念
- mybatis 是一个半自动轻量级的一个 orm 框架
2、作用
- 将 java 与 sql 分离,解决了 jdbc 的硬编码问题,方便 sql 的修改;
- sql 由开发人员控制,更加方便 sql 的调优;
3、快速开始
(1)原始方法
- 建一个全局配置文件,里面是数据源等运行环境的信息;
- 建立一个sql 的映射文件,并将这个文件注册到全局的配置中;
- 根据全局的配置文件获得一个 sqlsessionfactory;
- 通过 factory 获得 sqlsession(非线程安全),一个sqlsession 就是和数据库的一次会话,用完需要关闭;
- sqlsession通过 sql 的唯一标识符调用方法执行;
- 注意数据库的字段名和bean的字段名要相同才能顺利映射;
(2)接口式编程
- 定义一个接口,接口中定义操作数据库的方法;
- 将接口和sql的映射文件绑定:xml的namespace是接口全限定名,sql的id是接口中的方法名;
- 在 java 程序中通过session获得借口的实现类(代理对象)对象;
- 通过对象调用方法执行相应的sql;
二、配置文件
1、全局配置文件
(1)xml 中引入 dtd 约束
(2)properties标签:url引入网络或者磁盘的资源;resource引入 classpath 下的资源;
(3)settings标签:设置一些mybatis运行时的重要参数
(4)typeAliases标签:就是给 java 类起别名用的
- 别名不分大小写;
- 可以单独起也可以批量起;
- 默认别名就是类名;
- 也可以使用注解来起别名(@alias);
- java 中的基本数据类型和一些常用的类已经取好了别名(基本类型就是前面加 _ ;引用类型就是原类名)
(5)typeHandlers标签:
- 就是处理 java 类型和数据库类型的转换的;
- 常用的类型 mybatis 都给默认处理了,不用我们自己去做;
- 当然是支持自定义的了;
(6)plugins标签:作用就是拦截四大对象,改变他们的默认行为
(7)environments标签:
- 用来配置环境的,可以配置多个环境,在default属性里可以指定默认的环境;
- 每个环境都应包含:transactionManager 和 dataSource
(8)databaseIdProvider标签:
- 为mybatis提供多数据库厂商的支持;
- 厂商标识在数据库的驱动里;
- 标签内通过property标签指定数据库的别名;
- 在相应的sql语句的标签上用databaseId引入数据库的别名;
- 注意:主配置文件里的标签的书写的顺序是有要求的,databaseIdProvider应该写在envir 和 mapper 之间;
(9)mappers标签:
- 作用就是注册 sql 映射;
- 里面具体的 ma