
精通MyBatis系列
文章平均质量分 94
从应用到原理,再到源码全面分析MyBatis的各项技术
冰 河
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
三天撸完了MyBatis,各位随便问!!(冰河吐血整理,建议收藏)
很多大厂在面试的时候喜欢问MyBatis底层的原理和源码实现。总之,MyBatis几乎成为了Java开发人员必须深入掌握的框架技术,冰河吐血整理,建议收藏!!原创 2021-06-21 08:28:30 · 67318 阅读 · 100 评论 -
【MyBatis】MyBatis如何动态传入表名和字段名?肝完这篇我会了!!
写在前面一些小伙伴在公众号后台留言说,冰河,你能不能肝一篇在MyBatis中动态传入表名的文章?因为我们使用MyBatis需要实现分库分表的功能,这个场景需要MyBatis支持动态传入表名和字段名!我:没问题,安排上。在说明MyBatis中如何动态传入表名之前,我们先来说说MyBatis中的#{}和${}的用法。mybatis里#{}与${}的用法在动态sql解析过程,#{}与${}的效果是不一样的:#{} 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符。原创 2020-08-04 00:58:50 · 4476 阅读 · 1 评论 -
MyBatis源码分析之——执行SQL语句的过程
User user = userMapper.getUserById(1)调用invoke代理方法由于所有的 Mapper 都是 MapperProxy 代理对象,所以任意的方法都是执行MapperProxy 的invoke()方法。public Object invoke(Object proxy, Method method, Object[] args) throws Thr...原创 2020-01-05 17:09:53 · 1439 阅读 · 0 评论 -
MyBatis源码分析之——获得Mapper对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);public <T> T getMapper(Class<T> type) { return configuration.getMapper(type, this);}mapperRegistry.getMapper是从Mapp...原创 2020-01-05 16:52:27 · 1302 阅读 · 0 评论 -
MyBatis源码分析之——SqlSession会话创建过程
mybatis操作的时候跟数据库的每一次连接,都需要创建一个会话,我们用openSession()方法来创建。这个会话里面需要包含一个Executor用来执行 SQL。Executor又要指定事务类型和执行器的类型。1.创建Transaction(两种方式)属性 产生工厂类 产生事务 JDBC JdbcTransactionFactory JdbcTransac...原创 2020-01-05 16:46:03 · 1674 阅读 · 0 评论 -
MyBatis源码分析之——配置解析创建SqlSessionFactory的过程
大家应该都知道Mybatis源码也是对Jbdc的再一次封装,不管怎么进行包装,还是会有获取链接、preparedStatement、封装参数、执行这些步骤的。配置解析过程String resource = "mybatis-config.xml";//1.读取resources下面的mybatis-config.xml文件InputStream inputStream = Reso...原创 2020-01-05 16:33:47 · 1409 阅读 · 0 评论 -
MyBatis源码分析之——构建源码分析测试用例
一、源码准备首先,到MyBatis官方GitHub地址将MyBatis源码Fork到自己的GitHub仓库中。注意:MyBatis官方GitHub地址为:https://github.com/mybatis/mybatis-3。笔者GitHub地址为:https://github.com/sunshinelyz/mybatis将MyBatis源码Fork完成后,通过IDEA将MyB...原创 2019-12-29 20:17:23 · 1519 阅读 · 0 评论 -
ibatis之——学生信息管理实例
iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快。如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了。官网为:http://www.mybatis.org/搭建iBatis 开发环境:原创 2015-07-28 16:56:57 · 2447 阅读 · 0 评论 -
ibatis之——sqlMapConfig.xml配置文件详解
sqlMapConfig.xml配置文件详解:<!DOCTYPE sqlMapConfigPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.com/dtd/sql-map-config-2.dtd" > <settings cacheModelsEnabled ="true"原创 2015-07-28 14:34:54 · 8700 阅读 · 1 评论 -
单例模式在多线程中的使用情况
上述代码中,如果直接用于多线程中是存在问题的,比如线程A调用MyThreadScopeData.getInstance()获取MyThreadScopeData对象,执行到 instance = new MyThreadScopeData();还没返回的时候恰好这时候线程B也来调用MyThreadScopeData.getInstance(),执行了 instance = new MyThreadScopeData();这时候则线程B创建的对象会覆盖线程A创建的对象。所以在线程A中的MyThreadScop原创 2014-05-24 22:33:57 · 6632 阅读 · 3 评论 -
DocumentBuilder 解析出指定节点XMLString数据
DocumentBuilder 解析出指定节点XMLString数据原创 2014-02-25 23:30:57 · 4727 阅读 · 0 评论 -
ibaits动态查询
如果您正在学习ibaits开发,那么这个实例将会是您的首选入门实例原创 2014-02-20 14:18:33 · 2230 阅读 · 0 评论 -
SpringBoot之——集成 Druid + Mybatis
最近把一个项目的框架由 SpringMVC 转为 Spring Boot。Spring Boot框架的使用入门很快,尤其是 Spring Boot 其实相当于对 Spring 做了一些改进,去除配置,改为代码约定。但是,没了配置,第三方库如何集成进来就是我 Spring Boot 入门学习遇到的第一个坎,尤其是一些没有官方支持 Spring Boot 的库。我把我的项目框架转为 Spring Bo...转载 2018-10-22 00:39:27 · 1455 阅读 · 0 评论 -
MyBatis之——关联、集合和鉴别器的使用
转载请注明出处:https://blog.youkuaiyun.com/l1028386804/article/details/82825569Mybatis中级联有关联(association)、集合(collection)、鉴别器(discriminator)三种。其中,association对应一对一关系、collection对应一对多关系、discriminator可以根据情况选择采用哪个类作为实...原创 2018-09-23 22:34:47 · 1398 阅读 · 0 评论 -
MyBatis之——动态SQL
MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强...转载 2018-09-23 14:21:54 · 965 阅读 · 0 评论