![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis
文章平均质量分 93
zxfhahaha
这个作者很懒,什么都没留下…
展开
-
【MyBatis】逆向工程 MBG
MaBatis 逆序工程MBG文档MBG使用第一步:编写MBG的配置文件第二步:运行代码生成器生成代码MBG就是根据表自动生成对应的映射文件,接口以及bean类。文档官方文档地址:http://www.mybatis.org/generator/官方工程地址:https://github.com/mybatis/generator/releasesMBG使用1)编写MBG的配置文件2)运行代码生成器生成代码第一步:编写MBG的配置文件jdbcConnection配置数据库连接信息jav原创 2020-12-09 15:09:55 · 61 阅读 · 0 评论 -
MyBatis与Spring整合
MyBatis与Spring整合相关文档配置文件Mybatis全局配置文件映射文件SpringMVCweb.xmlSpring配置Spring MVC 配置spring-servlet.xmlcontext:component-scan扫描控制器视图解析器annotation-driven处理静态资源Spring自动扫描其他组件(除控制器)数据源事务管理整合Mybatis创建SqlSessionFactory对象让mapper能够自动注入相关文档查看不同MyBatis版本整合Spring时使用的适配包原创 2020-11-29 23:47:01 · 243 阅读 · 0 评论 -
【Mybatis】自定义TypeHandler处理枚举
Mybatis自定义TypeHandler处理枚举步骤我们可以通过自定义TypeHandler的形式来在设置参数或者取出结果集的时候自定义参数封装策略。对于枚举类DeptStatus,我们希望往数据库中存的是其状态码100、200、300;现有的处理枚举类的TypeHandler只能存索引或名字,所以我们要自定义一个typeHandler步骤实现TypeHandler接口或者继承BaseTypeHandler其中setParameter方法就是定义往数据库存的getResult就是定义原创 2020-11-29 21:00:52 · 311 阅读 · 0 评论 -
【Mybatis】批量操作
Mybatis 批量操作批量操作与Spring整合后的批量操作批量操作我们可以给openSession 方法传入ExecutorType.BATCH 类型的参数ExecutorType是枚举类型:ExecutorType.SIMPLE:这个执行器类型不做特殊的事情(这是默认装配的)。它为每个语句的执行创建一个新的预处理语句ExecutorType.REUSE这个执行器类型会复用预处理语句ExecutorType.BATCH这个执行器会批量执行所有更新语句示例:2. 批量操作原创 2020-11-29 20:28:00 · 135 阅读 · 0 评论 -
【Mybatis】插件开发
Mybatis插件开发插件机制插件编写运行结果源码分析plugin方法多个插件同时拦截目标对象插件机制MyBatis在四大对象(Executor 、ParameterHandler 、ResultSetHandler、StatementHandler)的创建过程中,都会有插件进行介入。创建好四大对象后,都是先执行下面这一句才返回。代码:interceptorChain.pluginAll(parameterHandler);pluginAll方法:就是获取到所有的interceptor (拦原创 2020-11-29 17:42:26 · 257 阅读 · 0 评论 -
【Mybatis】 工作原理总结
SQLSessionFactory的初始化openSession获取sqlSession获取接口的实现类对象查询原创 2020-11-29 16:10:33 · 152 阅读 · 0 评论 -
【Mybatis 源码】查询实现
Mybatis源码 查询实现查询流程图MapperProxy的invoke方法mapperMethod.execute()调用具体方法sqlSession.selectOne最后调的查询创建PreparedStatementHandler、ParameterHandle、resultSetHandler对象预编译sql产生prepareStatement对象查询接下来看mapper.getEmpById(1)是如何实现的主要就是调用DefaultSqlSession的增删改查,然后创建Statemen原创 2020-11-29 15:08:35 · 206 阅读 · 0 评论 -
【Mybatis 源码】 获取接口的实现类对象 getMapperxW
获取接口的实现类对象流程图mapperRegistry.getMapper()获取MapperProxyFactorymapperProxyFactory.newInstance(sqlSession)MapperProxy第三步看获取接口的实现类对象,主要就是opnSession对象的getMApper方法,返回接口的代理对象流程图调用configuration的getMapper()方法mapperRegistry.getMapper()调用mapperRegistry.getMappe原创 2020-11-29 12:02:58 · 307 阅读 · 0 评论 -
【Mybatis 源码】openSession获取sqlSession
openSession获取sqlSession流程图openSessionFromDataSourceExecutor的创建Executor获取DefaultSqlSession对象这一节 我们看defaultSqlSessionFactory对象的openSession()方法的具体过程调用的方法是openSessionFromDataSource()方法首先从configuration中拿到默认的Executor类型this.configuration.getDefaultExecutor原创 2020-11-29 00:11:43 · 271 阅读 · 0 评论 -
【Mybatis 源码】SQLSessionFactory的初始化
SQLSessionFactory的初始化分析创建SqlSessionFactoryBuilder对象build(inputStream)1. 创建XMLConfigBuilder2. parse.parse() 对配置文件各个节点解析settings标签的解析mappers标签的解析configuration对象3. build(configuration)我们在Mybatis测试的第一步就是得到一个SqlSessionFactory,下面是我们得到SqlSessionFactory的方法。接下来我们就原创 2020-11-28 23:37:32 · 589 阅读 · 0 评论 -
【Mybatis】缓存
Mybatis缓存一级缓存一级缓存失效情况二级缓存二级缓存工作机制二级缓存使用cache 标签的属性缓存有关设置第三方缓存整合MyBatis系统中默认定义了两级缓存,一级缓存和二级缓存。1、默认情况下,只有一级缓存( SqlSession级别的缓存,也称为本地缓存)开启。2、二级缓存需要手动开启和配置,他是基于namespace级别的缓存。3、为了提高扩展性。 MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存一级缓存一级缓存:(本地缓存):sqlSe原创 2020-11-28 16:54:03 · 51 阅读 · 0 评论 -
【Mybatis】DynamicSQL
DynamicSQLif 判断和where标签结合和set标签结合trim 字符串截取trim 代替wheretrim代替setchoose(when,otherwise) 分支选择foreach集合遍历批量保存MySQL下批量保存内置参数bind 绑定sql标签 抽取可重用的sql片段if 判断if标签里的test 是判断传入的参数和where标签结合where 标签可以自动把前面的and给去除 <!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 --> &l原创 2020-11-28 16:28:59 · 491 阅读 · 0 评论