![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis
Sean_徐
不忘初心
展开
-
Mybatis系列(十三)SQL执行流程分析(源码)
一、前言前边的章节,我们介绍了mybatis配置的各个节点时如何实现的,以及mapper映射器中各个节点的含义日常使用的CRUD操作,基本都是单个节点或者属性的讲解,本着"打破砂锅学到底"的态度,本节将从mybatis的四大核心组件着手,从源码层面去剖析mybatis更深层的秘密。SqlSessionFactoryBuilder(构造器):他会根据配置或者代码生成SqlSessionFact...原创 2020-04-27 10:07:42 · 359 阅读 · 0 评论 -
Mybatis系列(十二)动态SQL以及like,大于小于号怎么写
之前文章Mybatis系列(十一)mapper映射文件之insert,update,delete,Mybatis系列(十)mapper映射文件之select元素(一对一,一对多,多对多)主要介绍mybatis关于CRUD的操作,其实mybatis还有强大的动态SQL,今天就让我们一探究竟吧。一、动态SQL的元素元素作用备注if判断语句单条件分支判断choose(...原创 2020-04-23 15:11:29 · 3750 阅读 · 0 评论 -
Mybatis异常There is no getter for property named 'name' in 'class java.lang.String'
mybatis在使用动态SQL,如if,when,test判断的时候,出现“There is no getter for property named ‘name’ in ‘class java.lang.String’”该怎么解决。一、test=“xxx!=null” 换成 test="_parameter !=null" <select id="findUserByName"...原创 2020-04-23 13:48:54 · 1345 阅读 · 0 评论 -
Mybatis系列(十一)mapper映射文件之insert,update,delete
上篇文章Mybatis系列(十)mapper映射文件之select元素(一对一,一对多,多对多),平时项目中查询也是用的最多,也是最复杂的,最硬的一块骨头都啃完了,剩下的就小菜一碟了,这一节我们来看insert,update,delect。...原创 2020-04-22 10:02:09 · 1054 阅读 · 0 评论 -
Mybatis系列(十)mapper映射文件之select元素(一对一,一对多,多对多)
文章目录一、select元素的配置二、select查询小试牛刀三、select小试牛刀之多参数传递上篇文章Mybatis系列(九)mappers的四种配置方式及源码解析,是对mybatis配置文件中的mappers节点的介绍,综合前几节的文章,都是对mybatis配置文件各个节点的介绍,今天我们开始看mybatis另外一个重要的配置文件–mapper映射文件。在mybatis开发中,映射器的开发...原创 2020-04-19 22:49:01 · 9600 阅读 · 4 评论 -
Mybatis系列(九)mappers的四种配置方式及源码解析
文章目录一、mappers的配置——引入映射器的四种方法二、mappers源码解析上篇文章Mybatis系列(八)databaseIdProvider及plugin简单介绍,我们对mybatis的数据库厂商标识和插件有了简单的认识,这一节我们来看mybatis配置文件最重要的一个节点mappers(映射器)。一、mappers的配置——引入映射器的四种方法1.使用相对于类路径的资源,通过re...原创 2020-04-19 14:12:31 · 3583 阅读 · 1 评论 -
Mybatis系列(八)databaseIdProvider及plugin简单介绍
文章目录一、databaseIdProvider配置databaseIdProvider属性二、plugins上篇文章Mybatis系列(七)objectFactory源码解析,了解了对象工厂,本节我们来看下databaseIdProvider(数据库厂商标识),plugin(插件)。这两个节点在平时的开发中用的特别少,所以本篇文章也不会详细的去介绍,毕竟笔者自己也不是很熟悉。一、datab...原创 2020-04-18 13:23:00 · 581 阅读 · 0 评论 -
Mybatis系列(七)objectFactory源码解析
文章目录一、objectFactoryElement源码ObjectFactory 接口二、自定义ObjectFactory三、objectFactory在mybatis-config.xml的配置四、自定义objectFactory测试resolveInterface上篇文章Mybatis系列(六)typeHandler源码解析,对mybatis的类型转换器有了简单的认识,除了我们使用默认提供...原创 2020-04-18 12:47:46 · 215 阅读 · 0 评论 -
Mybatis系列(六)typeHandler源码解析
文章目录一、typeHandler配置二、typeHandlerElement源码三、系统定义的typeHandler四、自定义typeHandler五、枚举typeHandler六、自定义枚举typeHandler——SexEnumHandler上篇文章Mybatis系列(五)typeAliases源码解析,主要介绍了mybatis中别名的使用,这一节我们来看TypeHandler节点,翻译成...原创 2020-04-18 00:40:38 · 383 阅读 · 0 评论 -
Mybatis系列(五)typeAliases源码解析
文章目录一、typeAliases配置二、typeAliasesElement源码三、系统别名四、自定义别名上篇文章Mybatis系列(四)settings源码解析,介绍了setting节点,这篇我们来介绍typeAliases。typeAliases主要用来设置别名,可以为我们减少xml配置中对java类引用时冗余的全限定名。比如我们在使用com.sean.entity.User,就可以配置...原创 2020-04-17 21:12:38 · 230 阅读 · 0 评论 -
Mybatis系列(四)settings源码解析
上篇文章Mybatis系列(三)properties与environments源码解析,这篇主要讲settings节点。settings是mybatis中最复杂的配置,它能深刻影响mybatis底层的运行,但是在大部分情况下使用默认值便可以运行。先看setting完整的示例:<settings> <setting name="cacheEnabled" value="tru...原创 2020-04-17 17:23:02 · 156 阅读 · 0 评论 -
Mybatis系列(三)properties与environments源码解析
文章目录一、mybatis配置数据源的两种方式第一种直接配置xml第二种从外部指定properties配置文件第三种程序代码配置二、propertiesElement源码三、environments配置四、environmentsElement源码transactionManager 事务管理器datasource数据源PropertyParser源码五、附录:Mybatis配置文件元素一览表上...原创 2020-04-17 16:18:28 · 241 阅读 · 0 评论 -
Mybatis系列(二)配置文件源码解析
上篇文章Mybatis系列(一)环境搭建,写了一个demo,大致了解了整个项目的流程。本节我们就来看看Mybatis的这么配置文件是如何实现的。看一下上节的Test类public static SqlSessionFactory getSessionFactory(){ SqlSessionFactory sqlSessionFactory = null; String res...原创 2020-04-17 14:22:29 · 148 阅读 · 0 评论 -
Mybatis系列(一)环境搭建
文章目录1.项目依赖2.配置mybatis3.数据库设计4.实体类及mapper映射5.项目结构6.测试工作中一直在用Mybatis,但是也仅是停留在重复造轮子的过程中,对整个框架没有系统全面的了解。最近抽空准备自己搭一个demo去看看Mybatis到底是何方神圣。项目介绍:Mybatis框架,maven构建,Mysql数据库,log4j日志,lombok包(偷懒)1.项目依赖pom.xm...原创 2020-04-17 12:30:48 · 166 阅读 · 0 评论 -
TKmybatis的用法
mapper接口中的方法解析 public void test(EsOrder esOrder){ Example example = new Example(EsOrder.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("...原创 2019-09-27 14:00:42 · 161 阅读 · 0 评论 -
Mybatis{}和${}的区别是什么?
#{}和${}的区别是什么?#{}是预编译处理,${}是字符串替换处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值。处理${}时,就是把 ${}替换成变量的值。使用#{}可以防止SQL注入,提高系统安全性。原因在于:预编译完成后,SQL结构已经固定,即使用户输入了非法参数,也不会对SQL的结构产生影响。举个例子order by...原创 2020-04-09 11:49:37 · 123 阅读 · 0 评论