MyBatis
种树
种一棵树最好的时间是十年前,其次是现在~
展开
-
mybatis学习笔记之——自定义持久层框架
一、自定义持久层框架分析。 1、JDBC问题分析: a、数据库配置信息存在硬编码问题。 b、频繁创建释放数据库连接。 c、sql语句、设置参数、获取结果集参数均存在硬编码问题。 d、手动封装返回结果集,较为频繁。 解决: a、用(sqlMapConfig.xml或mybatis-config.xml)配置文件。 b、用连接...原创 2020-07-25 16:31:34 · 227 阅读 · 0 评论 -
模块一:持久层框架设计实现及MyBatis源码分析
面试题阶段一:开源框架源码剖析模块一:持久层框架设计实现及MyBatis源码分析2020/5/251.通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。Mapper接口是没有实现类的,当调用接.原创 2020-07-25 15:24:43 · 947 阅读 · 0 评论 -
简述Mybatis的插件运行原理,以及如何编写一个插件?
插件原理:在四大对象创建的时候1、每个创建出来的对象不是直接返回的,而是 interceptorChain.pluginAll(parameterHandler);2、获取到所有的Interceptor(拦截器)(插件需要实现的接口); 调用interceptor.plugin(target);返回target包装后的对象3、插件机制,我们可以使用插件为目标对象创建一个代理对象;AOP(面向切面) 我们的插件可以为四大对象创建出代理对象; 代理...原创 2020-06-17 01:41:53 · 3366 阅读 · 0 评论 -
简述下Mybatis的一级、二级缓存(分别从存储结构、范围、失效场景。三个方面来作答)?
1)一级缓存:Mybatis的一级缓存是指SqlSession级别的,作用域是SqlSession,Mybatis默认开启一级缓存,在同一个SqlSession中,相同的Sql查询的时候,第一次查询的时候,就会从缓存中取,如果发现没有数据,那么就从数据库查询出来,并且缓存到HashMap中,如果下次还是相同的查询,就直接从缓存中查询,就不在去查询数据库,对应的就不在去执行SQL语句。当查询到的数据,进行增删改的操作的时候,缓存将会失效。在spring容器管理中每次查询都是创建一个新的sqlSession原创 2020-06-17 01:33:18 · 1965 阅读 · 0 评论 -
Mybatis都有哪些Executor执行器?它们之间的区别是什么?
1、SimpleExecutor:每执行一次update或select,就开启一个Statement对象,用完立刻关闭Statement对象。2、ReuseExecutor:执行update或select,以sql作为key查找Statement对象,存在就使用,不存在就创建,用完后,不关闭Statement对象,而是放置于Map内,供下一次使用。简言之,就是重复使用Statement对象。3、BatchExecutor:执行update(没有select,JDBC批处理不支持selec..原创 2020-06-17 01:27:15 · 2992 阅读 · 0 评论 -
Mybatis动态sql是做什么的?都有哪些动态sql?简述一下动态sql的执行原理?
Mybatis的动态sql的作用:动态sql就是(在进行sql操作的时候)动态的根据属性值(所匹配的条件)来拼接数据库执行的sql语句,也就是多次查询或变更操作,根据传入的属性值不同,动态拼接出不同的可执行sql。包含判断为空、循环等;Mybatis动态sql(有哪些)标签:1、<if>:if是为了判断传入的值是否符合某种规则,比如是否不为空;2、<where>:where标签可以用来做动态拼接查询条件,当和if标签配合的时候,不用显示的声明类...原创 2020-06-17 01:03:04 · 12454 阅读 · 0 评论