MyBatis是什么
MyBatis是对JDBC的一种封装,可以让你使用XML文件更方便的管理SQL语句,是持久层框架
最关键解决了什么问题
最主要的是可以帮你解决SQL注入等安全性问题,不会因为手滑一个不小心留下一个SQL注入漏洞
持久层和DAL是什么鬼
持久层就是把数据写到硬盘里,能放一百年所以叫持久,DAL就是DataBase Access Layer 接入数据库层
MyBatis的奥义
MyBatis的中心思想就是把你的数据库拆分成了3个对象
- 数据模型: 和数据库表的字段一一对应,用来存放数据
- SQL接口: 使用一个接口,来完成逻辑操作,例如增删改查,每一张表对应一个接口
- SQL实现: 是一个XML文件,和SQL接口一一对应,存放具体的SQL语句,每一张表对应一个XML
字段到模型的映射
MyBatis把一个DataBase表格视为一个Model,表格里的每一个字段都是一个参数,例如存在表格User
id | username | password |
---|---|---|
0 | admin | admin |
那么它会被映射成一个DO Class,其中DO代表Data Object
1 | public class UserDO { |
SQL操作映射成方法
对于我们经常见到的增删改查操作,MyBatis会将其应设成一个接口 每一张表对应一个接口 称作Mapper
1 | public interface UserDOMapper { |
SQL语句映射成XML
虽然定义了增删改查的方法,但是最终都要通过SQL语句来实现,这些SQL语句就被映射成了XML文件
所谓通过XML管理SQL语句 就是这个意思,该XML与接口同名(UserDOMapper.xml)相当于SQL操作接口的实现
1 | <?xml version="1.0" encoding="UTF-8" ?> |
执行SQL操作
在完成了以上三项映射后,我们在逻辑层进行数据库操作,只需要
1 | UserDO user = new UserDO(); |
而不用每次都准备一个SQL语句,以及各种手滑写错引起SQL注入了