Mybatis的基本使用
.什么是Mybatis?
Mybatis:根据官方解释,MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2.特点
Mybatis:
1) 支持自定义SQL、存储过程、及高级映射
2) 实现自动对SQL的参数设置
3) 实现自动对结果集进行解析和封装
4) 通过XML或者注解进行配置和映射
5) 实现Java对象与数据库表的映射转换
可以发现,MyBatis是对JDBC进行了简单的封装,帮助用户进行SQL参数的自动化映射,以及结果集与Java对象的映射。与Hibernate相比,更加配置简单、灵活、执行效率高。但是正因为此,所以没有实现完全自动化,需要手写SQL,这是优点也是缺点。
3.架构
MyBatis架构总结:
1、 MyBatis有两类配置文件:
a) mybatis-condig.xml,是MyBatis的全局配置文件,包含全局配置信息,如数据库连接参数、插件等。整个框架中只需要一个即可。
b) xxxMapper.xml,是映射文件,里面配置要执行的SQL语句,每个SQL对应一个Statement,可以有多个Mapper.xml文件
2、 首先会通过SqlSessionFactoryBuilder来加载配置文件,生成一个SqlSessionFactory
a) 会加载mybatis-config.xml和mapper.xml
b) 加载mapper.xml的时候,顺便会对Sql进行编译,形成statement
3、 通过SqlSessionFactory建立连接,获取SqlSession对象
4、 MyBatis获取要执行的statement,进行自动参数设置
5、 SqlSession底层会通过Executor(执行器)来执行编译好的Statement,获取结果
6、 SQL的输入参数类型:
a) POJO,普通Java对象
b) HashMap,其实是POJO的Map形式, 键值对就是对象字段名和值z“
c) 各种基本数据类型
7、 查询结果的输出形式
a) POJO,普通Java对象
b) HashMap,其实是POJO的Map形式, 键值对就是对象字段名和值
c) 各种基本数据类型