mybatis原理学习笔记

mybatis的执行原理:

通常一个Mapper接口对应一个xml文件,Mapper接口中的方法名对应xml中的标签id,而xml中的每一个标签都会被解析为MapperStatement对象。通过xml中定义的namespace属性,可以和接口方法的执行路径相对应。而这个路径应该具有唯一性,所以Mapper接口中的方法不能被重载。Mapper接口的工作原理是JDK动态代理,Mybatis运行时会使用JDK动态代理为Mapper接口生成代理对象,代理对象会拦截接口方法,转而执行MapperStatement所代表的sql语句,然后将执行结果返回。

mybatis的分页原理:

Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内容分页,而非物理分页。

mybatis-pagehelper插件的实现原理:

使用mybatis提供的插件接口,实现自定义插件,在插件内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。

作者

彭凯

发布于

2021-01-04

更新于

2021-01-08

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.