1 MyBatis是什么
mybatis是一个持久层的框架,它对jdbc做了封装;是apache下的顶级项目
mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句
mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)
2 如何使用MyBatis
2.1 导包
mybatis : mybatis包
mysql : MySQL数据库驱动包
junit : 单元测试包
2.2 添加myBatis的配置文件
配置文件中需要配置的内容
environment配置
jdbc事务管理
数据库连接池
指定映射文件
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
2.3 写实体类
要求:实体类的属性名要与表的字段名一致
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
2.4 写实体类的映射文件
映射文件主要内容是要执行的sql
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
2.5 使用myBatis提供的api来访问数据库
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
3 MyBatis工作原理
4 查询结果放回Map类型
mybatis会将查询到的记录先转换成对应的Map 对象(以字段名作为key,以字段值作为value。 一条记录对应一个Map)。然后再将Map中的数据 存放到对应的实体对象里面。
如果想要结果返回Map类型,仅仅需要修改resultType的属性值就可以啦
5 解决实体类的属性与表的字段名不一致
5.1 使用别名实现
在sql语句中使用别名,别名和实体类的字段名保持一致
5.2 使用resultMap元素实现