核心: 实现对象关系映射->对象与数据库中表的映射关系
- 对象名称与表名一一映射.
- 对象的属性与表中的字段一一映射.
MybatisPlus工作原理
.1 MP核心
核心: 以对象的方式操作数据库
Mybatis操作的实质: Sql
调用步骤:
1. 用户执行userMapper.insert(user);
2. 根据继承的关系 BaseMapper.insert(user).
3. MP在内部生成Sql之后交给Mybatis调用最终实现数据操作.
.2 MP动态生成Sql的基础
核心问题: MP是如何动态的生成Sql语句?
例子:
Sql1: insert into user(字段名…) value (属性的值…)
Sql2: insert into dept(字段名…) value (属性的值…)
变化的: 表名–字段名称—属性的值
MP动态Sql实现原理
1. 用户调用接口方法 userMapper.insert(User)方法
2. 根据UserMapper的接口找到父级接口BaseMapper<T>
3. 根据父级接口动态获取当前接口的泛型对象T
4. 根据泛型T 获取指定的注解@TableName("demo_user"),之后获取表名demo_user
5. 根据泛型对象T,获取其中的属性,之后再找到属性的注解@TableField("id"),之后再次获取注解的值, 即字段名称.
6. 根据字段名称,获取对应属性的值.
7. 根据Sql拼接 形成最终的可以执行的Sql.
8. MP将生成的Sql交给Mybatis执行入库操作.