2021年3月10日
摘要: 在五、仿MyBatis自定义的持久层如何添加增删查改功能中,自定义了一个Executor,实现具体执行sql语句。MyBatis实际就是提供了一套Executor框架——但是比自定义的Executor复杂,具体如下图: 其为Mybatis提供与数据库交互的功能,是一个典型的装饰器模式(参考一、装饰器 阅读全文
posted @ 2021-03-10 13:58 池塘里洗澡的鸭子 阅读(70) 评论(0) 推荐(0) 编辑
  2021年3月9日
摘要: MyBatis允许对其四大组件(Executor,StatementHandler,ParameterHandler, ResultSetHandler)进行增强处理。在创建四大组件对象的时候 1、每个对象创建处理都不是直接返回,而是使用拦截器链拦截处理(interceptorChain.plugi 阅读全文
posted @ 2021-03-09 15:36 池塘里洗澡的鸭子 阅读(113) 评论(0) 推荐(0) 编辑
摘要: MyBatis自定义插件使用步骤(已有pojo及mapper的基础上) 一、自定义插件,实现Interceptor接口 红框中注解说明了对四大组件中的那个组件生效。 二、核心配置文件sqlMapConfig.xml文件增加插件相关内容 测试 测试结果: 阅读全文
posted @ 2021-03-09 10:46 池塘里洗澡的鸭子 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 在日常生活中,责任链模式应用场景多见。比如在公司财务报销,从提请报销起到报销款打款落地终整个流程中,可能要经过不同人的审核,审批、签字、盖章等一系列的节点。实际过程中,提请报销者无需了解整个报销流程,只关注报销结果——钱是否到账。而不是提请报销者,每个节点提个申请。 责任链模式即请求发起处理请求,不 阅读全文
posted @ 2021-03-09 06:18 池塘里洗澡的鸭子 阅读(184) 评论(0) 推荐(0) 编辑
  2021年3月8日
摘要: 前面装饰器模式提过代理模式的本质,就是本来自己要做的事,由于某些原因取舍之后找其他能力者干,比如代考(ff)。在实际生成中为控制对初始对象的访问,需提供一个代理或者占位对象。 代理模式UML图如下: 以上UML图是否似曾相识?对的,与装饰器模式好像是双胞胎,只是名字不同。个人理解装饰器模式是特殊的静 阅读全文
posted @ 2021-03-08 20:47 池塘里洗澡的鸭子 阅读(65) 评论(0) 推荐(0) 编辑
  2021年3月7日
摘要: 装饰器模式的定义之类的在此不赘述,网上资源比较多。 装饰器模式打个不恰当(ff)的比喻,就是高考,你可以找人代考(警察叔叔过来找你了)也可以在高考前努力提高自己的十八般武艺自信满满地进考点。如果你选择找人代考就是代理模式,如果你选择提高自身的能力就是装饰器模式的思维:强调的是自身功能的扩展。 UML 阅读全文
posted @ 2021-03-07 20:48 池塘里洗澡的鸭子 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 从MyBatis功能点之一(1):MyBatis缓存初体验中,可知二级缓存是跨session的,而一级缓存不是。为什么呢?通过Mybatis源码分析,一级缓存默认使用底层数据结构为PerpetualCache为数据查询提供效率。同时MyBatis不止实现了PerpetualCache,还有其他实现提 阅读全文
posted @ 2021-03-07 19:33 池塘里洗澡的鸭子 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 在五(补充二)MyBatis中执行器Executor框架中展示了MyBatis中使用Executor默认为CacheExecutor,即默认提供对SQL执行结果提供缓存功能。 一级缓存初体验(session,默认打开) 同一查询执行两次以上:select * from student where i 阅读全文
posted @ 2021-03-07 18:01 池塘里洗澡的鸭子 阅读(47) 评论(0) 推荐(0) 编辑
  2021年3月6日
摘要: MyBatis中提供注解有: @Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Results:可以与@Result 一起使用,封装多个结果集 @One:实现一对一结果集封装 @Many:实现一对多结果集封装 @ 阅读全文
posted @ 2021-03-06 17:04 池塘里洗澡的鸭子 阅读(54) 评论(0) 推荐(0) 编辑
摘要: Mybatis针对SQL查询结果的复杂性,实现了一下三种复杂查询: 1)一对一查询 实现语句:select * from neworder o, user u where o.uid = u.id 实体Order: 接口: 配置: 关注点:此时mapper文件中resultMap已经不是实体类,而是 阅读全文
posted @ 2021-03-06 13:08 池塘里洗澡的鸭子 阅读(55) 评论(0) 推荐(0) 编辑