
MyBatis 源码之旅
文章平均质量分 86
记录 Mybatis 源码学习的一些总结
大鹏cool
good good study, day day up !
展开
-
MyBatis-Plus BaseMapper 是怎样实现的?
MyBatis-Plus 是一个集多种特性于一身的项目,包括内置通用 Mapper、分页插件、代码生成等,这些功能使开发者对它爱不释手。MyBatis-Plus 最核心的功能要数通用 Mapper 了,时间长了,我们不免会产生疑问,BaseMapper 是怎样帮我们注入 SQL 的?带着这个疑问我们开始今天的分析。原创 2021-09-15 10:14:03 · 20602 阅读 · 1 评论 -
MyBatis 与 Spring 整合原理分析
我们常常将 Spring 与 MyBatis 结合在一起使用,由于篇幅问题,上篇《MyBatis 快速整合 Spring》仅介绍了将 MyBatis 整合到 Spring 的方式,这篇在上篇的基础上总结出几个问题,并尝试通过分析其底层源码进行回答。原创 2021-08-10 13:24:41 · 1763 阅读 · 0 评论 -
MyBatis 快速整合 Spring
目前,关系型数据库已经成为 Java 应用的标配,由于 JDBC 操作数据库的复杂性,我们通常会选择一款持久层框架,而作为半自动化 ORM 框架的 MyBatis 则成了我们的首选,而 Spring 又成了 Java 事实上的标准,它让我们开发 Java 应用更快、更容易、更安全,因此我们通常会将 MyBatis 与 Spring 整合在一起使用。原创 2021-08-06 09:29:09 · 369 阅读 · 0 评论 -
MyBatis TypeHandler 泛型踩坑指南
为了支持数据库字段与复杂 Java 类型之间的转换,最近我所参与的项目中使用到了 MyBatis TypeHandler,由于 MyBatis 设计问题,如果为同一个泛型类的不同参数类型创建多个 TypeHandler,后面注册的 TypeHandler 会将前面注册的 TypeHandler 覆盖,从而引发错误,因此这里做一篇总结,并提供给其他小伙伴一些解决思路。原创 2021-06-08 10:57:59 · 5708 阅读 · 3 评论 -
MyBatis 中的设计模式,这次我总结全了
MyBatis 作为一个小巧的持久层框架,在其中也使用了几个设计模式,这里把我能识别出的设计模式做一个总结。很多有关设计模式的书为了便于读者理解设计模式经常会举出一些简单的案例,这样看来好像懂了,但实战时又好像什么都不会,通过 MyBatis 这些设计模式的总结,希望达到深入理解设计模式的目的,知道为什么使用这些设计模式?解决了什么问题?在什么场景下使用?这样读者在遇到相同问题的时候自然就知道选择什么样的设计模式。原创 2021-05-17 17:41:17 · 1238 阅读 · 2 评论 -
MyBatis 缓存机制分析,MyBatis 真的有二级缓存?
MyBatis 官网在缓存一节中提到:Mybatis 具有全局性的二级缓存。也许这也是网上一些资料说 MyBatis 具有二级缓存的来源。类比 CPU 三级缓存,乍一看 MyBatis 的二级缓存似乎也是这样使用的。经过仔细分析,MyBatis 官网提到的二级缓存并不是这么回事。原创 2021-03-08 19:56:21 · 308 阅读 · 0 评论 -
谈谈 MyBatis 的插件,除了分页你可能还有这些使用场景
扩展性是衡量软件质量的重要标准,MyBatis 作为一款优秀的持久层框架自然也提供了扩展点,那就是我们今天谈到的插件。MyBaits 的插件拦截内部组件方法的执行,利用插件可以插入自定义的逻辑,例如常用的支持物理分页的 PageHelper 插件。原创 2021-03-04 17:48:58 · 740 阅读 · 0 评论 -
一条 SQL 是如何在 MyBatis 中执行的
MyBatis 执行 SQL 的核心接口为 SqlSession 接口,该接口提供了一些 CURD 及控制事务的方法,另外还可以通过 SqlSession 先获取 Mapper 接口的实例,然后通过 Mapper 接口执行 SQL,Mapper 接口方法的执行最终还是委托到 SqlSession 中的方法。因此可以由 SqlSession 入手分析 SQL 执行流程。原创 2021-02-24 15:56:44 · 653 阅读 · 0 评论 -
MyBatis Mapper 接口方法执行原理分析
MyBatis 的 Mapper 有两种形式,第一种是 xml 文件,用来配置映射关系及 SQL,第二种是 Java 接口。通常来说,我们倾向于在 xml 中创建 Java 接口方法对应的查询语句,通过调用 Mapper 接口方法来操作数据库。使用 Mapper 接口方法的形式替代了调用 SqlSession 的方法,避免了字符串拼写错误的问题,那么 Mapper 接口是如何实例化的呢?Mapper 接口方法又是如何执行的?本篇将进行分析。原创 2021-02-19 14:09:39 · 1019 阅读 · 2 评论 -
MyBatis 初探,使用 MyBatis 简化数据库操作(超详细)
MyBatis 是一个半自动化的 ORM 框架,这是因为使用 MyBatis 不仅要指定数据库表和实体类的映射规则,还要指定操作数据库的 SQL,这也让我们操作数据库更为灵活。只要使用 JDBC 能进行的操作,都可以使用 MyBatis 进行操作。设置参数、获取结果集、转换为实体类这些操作 MyBatis 内部都已实现,而无需用户关心。原创 2021-02-18 13:00:35 · 1930 阅读 · 0 评论