![](https://img-blog.csdnimg.cn/20191218105253698.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
java笔记——mybatis相关
java笔记——mybatis相关
ww0peo
这个作者很懒,什么都没留下…
展开
-
2019.10.24笔记——mybatis-spring新老版本的mapper扫描分析
在invokeBeanFactoryPostProcessors方法中就使用了策略模式 mybatis在@Import中传递了ImportBeanDefinitionRegistrar的实现类,在回调方法中 在旧版中完成了dao的扫描,拿到了所有的mapper放到bean工厂中 在新版中只是往bean工厂中注册了一个MapperScannerConfigurer的bd 这个MapperScanne...原创 2019-11-03 23:50:53 · 352 阅读 · 0 评论 -
2019.9.29笔记——mybatis源码解析之总结和面试题
mybatis流程 spring开启了事务mybatis的一级缓存可以生效 因为session关闭了事务也就消失了,而且开启事务spring就知道需要在哪里关闭事务 二级缓存不能存一直增加的数据,因为二级缓存的数据几乎不会被回收 ...原创 2019-10-19 22:35:53 · 231 阅读 · 0 评论 -
spring笔记⑨——简单模拟mybatis的注解实现
import注解可加以下三种类 普通类(需要注入的类) ImportSelect ImportBeanDefinitionRegistrar原创 2019-10-17 23:19:51 · 327 阅读 · 0 评论 -
2019.9.22笔记——mybatis源码解析之缓存实现原理
在mybatis以前的版本在mapper类的方法中传递多参数时如果不用@Param传递参数名就会报错 因为jdk的bug得不到参数名,因为jdk8以前反射得到的方法参数名默认都是arg0、arg1、、、、、、 在jdk8以后可以通过加上这个参数-parameters,并且使用maven主动用complie去编译项目 在eclipse中可以通过勾选如下选项拿到参数名(同样需要jdk8以上) 在s...原创 2019-10-12 14:43:01 · 145 阅读 · 0 评论 -
mybatis笔记②——SqlSessionTemplate的自动装配和Mapper的bean的实例化流程
spring的自动装配永远都是开启的,只是默认模式是no罢了 spring的自动装配从来都不是在需要注入的地方加上注解,这一点可以从基于xml的方式注入来看出,只需要设置default-autowire属性就够了,默认是no模式 下面是4种模式的官方解释 如果是使用非xml方式来配置spring那么就无法设置这个自动装配的模式了,这样就默认是no模式,于是spring提供了注解的方式协助自...原创 2019-10-11 22:21:04 · 1628 阅读 · 0 评论 -
mybatis笔记①——日志及spring mybatis解析
mybatis解析mapper的方法 url resource class pakeage mybatis单独使用时加上log4j是可以使用日志的 具体解析 但是如果mybatis和spring5整合的话mybatis是无法使用日志的 因为spring5内置的jcl,所以还不能到达第四行代码,在第二行代码就会实例化日志对象,就会使用spring5内置的jcl,因为spring5的jcl是经过改造过...原创 2019-10-10 16:46:21 · 216 阅读 · 0 评论 -
2019.9.24笔记——mybatis源码解析之插件开发(分页)
正在原创 2019-10-09 20:54:30 · 105 阅读 · 0 评论 -
java框架复习——Mybatis
目录概述Mybatis示例resultType、parameterType、resultMap和parameterMapresultTyperesultMapparameterTypeparameterMapMybatis的sql预编译Select 的语句的基本使用List实体类的方式集合的查询以map方式返回实体返回map的集合ResultMap的使用模糊查询insert的使用基本插入主键的返回...原创 2019-10-08 18:35:49 · 181 阅读 · 0 评论 -
mybatis多参数报错误问题分析及解决方法(jdk问题)
问题分析 在mybatis以前的版本在mapper类的方法中传递多参数时如果不用@Param传递参数名就会报错 如果从源码上分析我们可以观察到mybaits的底层是通过jdk反射获取参数名,然后通过参数名将#{}和${}中同名的参数替换成真正的数值的,当然#{}和${}的底层实现也是不一样的,前者是预编译,后者是单纯的在发送sql之前替换数值的。 之所以会出现这个问题是因为jdk8以前反射得到...原创 2019-09-30 21:29:00 · 823 阅读 · 0 评论 -
mybatis的缓存(和spring整合)
mybatis 如果已经和spring整合了,mybatis的一级缓存就会失效 因为spring会自动关闭session 所以一级缓存比较鸡肋 通常会使用二级缓存 在mapper上加@CacheNamespace 如果查询和修改一个表中数据的方法不在一个mapper类中 但是如果在修改前查询并且在修改后查询时会发现查询出来的数据没有被修改,但是实际上数据库中的数据已经被修改了 但是如果查询和修改一...原创 2019-09-22 22:28:01 · 754 阅读 · 0 评论