什么是Mybatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 |
MyBatis简介
作用:封装了JDBC操作,简化数据库访问代码
封装功能如下:
--封装了获取连接,执行SQL,释放连接
--封装了SQL参数设置(参数Emp)
insert into emp (name,age)
values(#{name},#{age})
--封装了记录映射成实体对象过程
--(实体类属性名与查询结果集 ResultSet中列名保持一致)
开发者的主要工作:写SQL和实体类,然后使用SQLsession对象执行SQL操作 |
Mybatis体系结构
Mybatis体系结构主要由以下几个关键部分
加载配置 |
-配置有两种形式,一种是xml配置文件,另一种是java代码的注解,MyBatis将SQL的配置信息加载成为一个个的MappedStatement对象(包括了传入参数映射配置,执行的SQL语句、结果映射配置),并将其存储在内存中 |
SQL解析 |
-当API接口层接收到调用请求时,会接受到传入SQL的ID和传入对象(可以是Map,JavaBean或者基本数据类型),MyBatis会根据SQL的ID找到对应的MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。 |
SQL执行 |
-将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。 |
结果映射 |
-将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将两最终结果返回。 |
Mybatis配置文件
Mybatis框架的XML配置文件包含下面两种类型
SqlMapConfig_xml(1个) |
主要配置文件,用于指定数据库连接参数和框架参数 |
SqlMap.xml(n个) |
映射定义文件,用于定义SQL语句和映射信息 |
MyBatis配置文件
MyBatis-config.xml(这是我项目中的例子) |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <typeAliases> <package name="com.atguigu.cusc"/> </typeAliases> </configuration> |
Mybatis流程图