
mybatis
sunct
来自于猩球的追逐者
展开
-
Mybatis源码阅读的关键点
阅读Mybatis源码时,随手下关键点,以备以后查看解析过程如下:XMLConfigBuilder.mapperElement ===> configuration.addMappers(mapperPackage);MapperAnnotationBuilder.parse 解析注解的入口MapperAnnotationBuilder.parseStatement 解析Mapper中的每...原创 2018-04-14 16:12:56 · 236 阅读 · 0 评论 -
复用代码系列:mybatis插件——打印SQL语句并记录执行时间
废话不多说,直接上代码,代码可用:import org.apache.ibatis.executor.statement.StatementHandler;import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.mapping.ParameterMapping;import org.apache.ibatis.pl...转载 2018-05-22 10:36:41 · 1070 阅读 · 0 评论 -
扩展tk.mybatis的流式查询功能
mybatis查询默认是一次获取全部, 有时候需要查询上万上百万数据时,如果一次性读取到内存中,会容易导致OOM问题。这时候需要采用流式查询。以下扩展了tk.mybatis的流式查询功能。 直接上干货:@Options注解是关键import org.apache.ibatis.annotations.Options;import org.apache.ibatis.annotations.S...原创 2019-05-09 14:37:57 · 3115 阅读 · 1 评论 -
基于SpringBoot和tk.mybatis的支持事务的读写分离的源码实现
至于什么是读写分离,请大家自己去百度吧。直接上干货源码:先定义数据源读写类型/** * 数据源类型 * * @author sunchangtan */public enum DataSourceType { WRITE, READ}定义数据库连接的Holderimport java.sql.Connection;import java.util.HashM...原创 2019-05-06 20:18:47 · 1755 阅读 · 2 评论 -
扩展tk.mybatis的批量更新的功能
tk.mybatis没有带批量更新的功能,批量更新却是经常使用的,所以需要自己实现。批量更新网上主要有2种方式:case when方式、foreach方式但是foreachzhe这种方式效率非常低下,不知道为何那多么帖子在流传,请看我另一个文章。扩展tk.mybatis的批量更新,采用case when方式,源码干货如下:首先定义下mapper接口import org.apache....原创 2019-05-12 22:32:39 · 13031 阅读 · 11 评论 -
mybatis如何开启batch模式
一般来说,对于SSM项目工程来说,mybatis的ExectoryType默认是simple,那么又如何能动态使用batch模式呢?直接上源码实现干货:import org.apache.ibatis.session.ExecutorType;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.sessi...原创 2019-05-12 22:39:59 · 11619 阅读 · 2 评论 -
mybatis批量新增和批量更新的效率对比
今天,为了更多了解下,mybatis批量新增和批量更新在simple/batch模式 + MySQL的rewriteBatchedStatements下效率有什么区别,做了一次实验。实验结果,让人意想不到,如果没有亲自测试,可能一直会被网上帖子误导。实验参数mybatis的执行类型ExecutorTypesimply模式batch模式形成的SQL语句方式insert:批...原创 2019-05-12 23:24:39 · 7755 阅读 · 5 评论