mybatis
文章平均质量分 67
mybatis专栏
吴法刚
从现在我下了一个决定把自己学习过的东西都写成文章发表出来,大家共同学习共同探讨,知识无边界。。欢迎交流技术
展开
-
mybatis 插件机制
mybatis 4大插件分页插件功能设计代码<plugins> <plugin interceptor="com.wfg.interceptor.PageInterception"> <property name="aa" value="123"/> </plugin> </plugins>package com.wfg.interceptor;import org.apache.ibatis.e原创 2021-10-24 19:07:04 · 1359 阅读 · 0 评论 -
Mybatis Configuration 源码
注解解携原创 2021-10-24 19:06:15 · 1192 阅读 · 0 评论 -
动态sql解析源码分析
概述我们在mapper.xml中写的这种sql并不能执行,这就要求mybatis将我们编写的sql进行解析,变成符合w3c标准的sql,让statement可以执行,这种脚本解析很多场景都会使用,比如我们工作中使用的流程编排,规则解析,freemark框架等都会存在这样的技术总体架构BoundSql :这个类我们不陌生,在前面分析的时候经常遇到,这个类中提供了satement 运行sql所需要的所有数据SqlSource 非常简单的一个接口,就一个获取BoudSql方法DynamicSql原创 2021-10-24 19:05:34 · 1892 阅读 · 0 评论 -
Mybatis 源码分析之statement
结构执行顺序源码分析:org.apache.ibatis.executor.SimpleExecutor#doQuery参数处理:javabean =》 jdbc 参数原创 2021-10-24 19:04:17 · 1401 阅读 · 0 评论 -
javaagent入门
javaagent入门JVM启动前静态InstrumentJavaagent 是什么?如何使用javaagent?1.首先来实现javaagent工程。写给测试项目JVM启动后动态Instrument总结instrument原理启动时加载instrument agent过程:运行时加载instrument agent过程:Instrumentation的局限性javaagent使用指南今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,知道大神写mybatis重sql打印的时候知道有这么一原创 2021-10-23 09:19:05 · 664 阅读 · 0 评论 -
MetaObject mybatis反射体系
概述MetaObject是Mybatis一个反射工具类,进行了高度封装,根据属性进行获取值,设置值,支持对象的嵌套这种结构objectWrapper 是获取当前对象的属性值,不支持对象的嵌套MetaClass 支持子属性的获取Reflector 就是直接使用反射获取值,或者设置值,相当于一层一层的进行封装上来的,我们从上而下进行看MetaObject虽然我们今天是主要看MetaOject但是只看这一个类就没啥看头了,和ObjectWrapper 结合起来一起看 //原始对象 privat原创 2021-10-12 01:32:15 · 839 阅读 · 0 评论 -
PropertyTokenizer mybatis 属性分词器
PropertyTokenizer 分词器 其实很简单,简言之就是按照一定的规则将字符串进行分词public class PropertyTokenizer implements Iterator<PropertyTokenizer> { //属性名称 private String name; //属性名称➕索引 主要是集合属性 eg: user[0] private final String indexedName; //索引 private String index原创 2021-10-11 21:22:33 · 413 阅读 · 0 评论 -
mybatis 一级缓存源码分析
mybatis 一级缓存源码分析使用场景源码分析清除缓存调用的情况调用update配置flushCache作用域设置为STATEMENT执行commit执行rollbacksqlSession 调用clearCache()使用场景public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Reso原创 2021-09-25 20:24:50 · 123 阅读 · 0 评论 -
mybatis 二级缓存源码分析
缓存需求分析SqlSession中可以看到Cache链二级缓存命中由于二级缓存时跨线程的,如果不是 提交之后才能命中会导致脏读,比如上面图示,会话2,发生修改之后直接直接填充到二级缓存中,导致此时会话1正好读取到,但是回话2由于某些原因回滚了,此时会话一读取了错误数据上图描述了mybatis的二级缓存工作原理:查询时如果存在就直接获取不存从库中获取修改时直接清理暂存区,提交时提交的暂存区,此时我们看看源码如何实现的。查询@Override public <E> L原创 2021-09-25 20:26:12 · 135 阅读 · 0 评论 -
Mybatis执行器源码分析Executor
Mybatis执行器源码分析Executor概述结构图测试一把测试代码simpleExecutorreuseExecutorbatchExecutorbaseExecutorcachingExecutor使用sqlSession庖丁解牛获取sqlSessiong获取Excutor 逻辑:执行数据库逻辑未获取到二级缓存数据总结概述我们平时使用的时候很少关注这个Executor,往往一般是直接使用sqlSession进行数据操作,但是我们知道sqlSession拥有configruation 和Excuto原创 2021-09-25 20:22:58 · 322 阅读 · 0 评论 -
mybatis缓存机制和第三方缓存集成
缓存是一般的ORM 框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力。跟Hibernate 一样,MyBatis 也有一级缓存和二级缓存,并且预留了集成第三方缓存的接口.根据缓存的作用域分为一级缓存和二级缓存一级缓存(本地缓存)一级缓存也叫本地缓存,MyBatis 的一级缓存是在会话(SqlSession)层面进行缓存的。MyBatis 的一级缓存是默认开启的,不需要任何的配置。首先我们必须去弄清楚一个问题,在MyBatis 执行的流程里面,涉及到这么多的对象,那么缓存PerpetualC原创 2020-05-11 17:29:02 · 744 阅读 · 0 评论 -
springmvc+spring+mybatis整合 idea版
最近公司要开发新项目记录下过程:给大家一个参考,优美不优美大家自己评论创建maven项目当然jdk 根据自己的需要选择版本,我现在一直用的1.8groupid 一般公司域名倒着写 artifactID 项目名称也可以groupid 公司域名加项目名称用.分隔,artifactid用-分隔maven选择新建项目完成整合顺序1.spring为核心 我们先添加spring的支持...原创 2020-03-22 15:05:48 · 785 阅读 · 0 评论 -
Dynamic SQL mybatis动态sql
Dynamic SQL动态sql是我们开发中家常便饭,但是我们经常会因为格式不正确,多一个, 少一个空格等问题带来诸多烦恼,所以动态sql是我们必须要掌握和了解的The Dynamic SQL elements should be familiar to anyone who has used JSTL or any similar XML based text processors. In...原创 2020-03-22 13:26:09 · 371 阅读 · 0 评论 -
mybatis 配置文件详解
Mapper XML Filesmybatis 的映射文件重要性就不说了,除了使用了映射文件还有一种就是使用注解的方式,我们先看看优缺点:既然支持2种形式现在我就思考2个问题?这2种方式是否可以同时使用?答案是肯定的可以使用如果一个方法同时在xml配置也使用annotation注解哪个起作用?答案是:不允许这样做的,也好理解,不然mybatis不知道使用哪个实例化.抛出的异常为:...原创 2020-03-22 13:08:20 · 369 阅读 · 0 评论 -
mybatis 主配置文件各个标签的分析
ConfigurationThe MyBatis configuration contains settings and properties that have a dramatic effect on how MyBatis behaves. The high level structure of the document is as follows:configurationprop...原创 2020-03-21 19:09:02 · 1074 阅读 · 0 评论 -
mybatis generator 使用maven 在idea中实现
最近在用mybatis开发项目,由于原来使用的hibernate,感觉mybatis干了很多体力活,比如大量的表对应的实体类,dao,mapper都需要写,并且我们目前还没有进行封装basemapper 这样的类,自身的增删改查,都需要自己去写,我感觉这样会大大降低以后的开发效率,今天周末没事,自己从网上找了下资料,原来mybatis3之后已经和hibernate那样可以逆向工程方法生产这些无技术...原创 2020-03-21 17:20:32 · 399 阅读 · 0 评论 -
mybatis应用之一:初识mybatis 和 环境搭建
本来想写一个mybatis环境搭建的文章 但是感觉还是太简单了 算了 搭建还是参考官方文档吧!我也是参考官方文档去搭建的原创 2020-03-21 07:57:16 · 196 阅读 · 0 评论