
mybatis
const伐伐
这个作者很懒,什么都没留下…
展开
-
手写实现mybatis参数封装Map过程
参考我们阅读源码画的uml图,来实现我们自己的参数封装为Map的过程(造个轮子)阅读源码文章参考:mybatis参数封装Map过程的源码解析输入是执行带@MyParam的方法输出是一个Map,其key是@MyParam的value,其value是方法@MyParam对应的参数值BootStrap输入是Class clazz = EmployeeMapper.clas...原创 2019-05-20 14:25:34 · 884 阅读 · 0 评论 -
mybatis-plus逻辑删除功能源码解析
逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。如果你需要再查出来就不应使用逻辑删除,而是以一个状态去表示。如: 员工离职,账号被锁定等都应该是一个状态字段,此种场景不应使用逻辑删除。若确需查找删除数据,如老板需要查看历史所有数据的统计汇总信息,请单独手写sql。那么用户注销App是不是应该使用逻辑删除呢?因为userId在很多表中都是外键,...原创 2019-06-04 09:55:21 · 4333 阅读 · 0 评论 -
mybatis-plus的sql注入器实现自定义全局sql操作原理解析
自定义自己的通用方法可以实现接口ISqlInjector,也可以继承抽象类 AbstractSqlInjector。注入通用方法 SQL 语句,然后继承 BaseMappe添加自定义方法,全局配置sqlInjector 注入 MP会自动将类所有方法注入到 mybatis 容器中。比如说我想在全局添加一个逻辑删除方法,我不希望给每个Mapper添加这个方法,而是希望像BaseMapper这样...原创 2019-06-04 09:24:42 · 6347 阅读 · 1 评论 -
mybatis-plus 分页插件 执行分析插件 性能分析插件 乐观锁插件的基本实现原理
分页插件PaginationInterceptor其原理与mybatis插件的创建没有区别。1. PaginationInterceptor,implements Interceptor2. 使用@Intercepts注解完成插件签名@Intercepts({@Signature(type = StatementHandler.class, method = "prepare",...原创 2019-05-31 10:08:33 · 5992 阅读 · 0 评论 -
spring启动时mybatis-plus注入sql源码解析
MP在spring启动就会挨个分析xxxMapper中的方法,并且将对应的SQL语句处理好,保存到configuration对象中的mappedStatements中。首先,在contextApplication.xml文件中配置的sqlSessionFactory配置的是mybatisplus的MyBatisSqlSessionFactoryBean,其implementsAppl...原创 2019-05-31 09:49:42 · 1550 阅读 · 0 评论 -
mybatis插件开发原理及方法
MyBatis在四大对象的创建过程中,都会有插件进行介入。interceptorChain.pluginAllpublic Object pluginAll(Object target) { for (Interceptor interceptor : interceptors) { target = interceptor.plugin(target);...原创 2019-05-27 15:21:44 · 299 阅读 · 0 评论 -
mybatis参数封装Map过程的源码解析
过程是这样的:在MyBatisTest中调用interface mapperEmployee employee = mapper.getEmpByIdAndLastName(1, "tom");在com.hfi.dao.EmployeeMapper#getEmpByIdAndLastName方法中Employee getEmpByIdAndLastName(@Param("...原创 2019-05-17 17:35:57 · 1205 阅读 · 2 评论 -
手写实现乞丐版mybatis
参考我们阅读源码画的uml图,来实现我们自己的mybatis(造个轮子)阅读源码参考:mybatis查询过程的源码分析组织结构1. Configuration类我们直接用EmployeeMapperXml来代替2. MySqlSession3. Interface MyExecutor4. Class MySimpleExecutor5. Class MyMappe...原创 2019-05-17 11:17:28 · 273 阅读 · 0 评论 -
mybatis查询过程的源码分析
参考:咕泡学院的mybatis源码分析及手写实现教程1. 运行hello world,提出问题先自己运行一个demo,以mybatis为例,需要sqlsession,需要mapper,为什么需要呢?2. 看设计文档,看模块划分,理解大局需要看其design设计文档或先从模块上来看,大局上是什么样的,之后再跟进去看看其架构设计图,看其是如何设计其系统的如果没有架构设计图,那么...原创 2019-05-17 10:45:58 · 487 阅读 · 0 评论 -
spring data jpa与mybatis的功能区别及各自对ORM常见需求的解决方案对比
mybatis与spring data jpa的功能区别1. spring data jpa实现了jpa(java persistence api)功能,即可以实现pojo转换为关系型数据库记录的功能,通俗来讲就是可以不写任何的建表sql语句了。jpa是spring data jpa功能的一个子集。而mybatis并没有jpa功能,建表语句还是要自己写的。2. spring da...原创 2019-06-04 19:56:41 · 3764 阅读 · 0 评论