随笔分类 - mybatis源码分析
摘要:trim标签使用 标签用于对标签内的sql语句进行前后缀补齐或者前后缀删除。该标签提供了四个属性,prefix,prefixOverrides,suffix,suffixOverrides。prefix,suffix用于补齐sql前后缀的值。而prefixOverrides,suffixOverri
阅读全文
摘要:Mybatis IO处理工具Resources和ClassLoaderWrapper Resources类位于org.apache.ibatis.io包下,用于处理相关的IO操作,例如将文件,网络资源进行读取并转换为File,InputStream,Reader,URL等Java类。Resource
阅读全文
摘要:BaseBuilder源码分析 BaseBuilder是mybatis配置文件,Mapper文件等解析器的基类,该类为抽象类,但并未声明相关的抽象方法,所有子类都可以使用BaseBuilder所提供的属性字段和实现方法,BaseBuilder下的每个子类在使用构造器实例化时,必定会调用BaseBui
阅读全文
摘要:SqlSessionManager SqlSessionManager本身实现了SqlSessionFactory, SqlSession两个接口,所以本身能够构建Sqlsession和使用Sqlsesion声明的CURD相关的查询方法。SqlSessionManager不能通过构造器进行实例化,只
阅读全文
摘要:SqlSessionFactory讲解 SqlSessionFactory通过类名可以看出其作用是通过工厂模式创建SqlSession,那么如何通过工厂模式创建Sqlsession呢?抛开Sqlsession,先看看SqlSessionFactory的类结构和相关的方法。SqlSessionFact
阅读全文
摘要:Mybatis环境配置类Environment 在初始化Mybatis框架时,需要配置environment元素,该元素允许有多个,方便我们在不同环境下切换后端的存储。拥有一个id属性用于该环境,此id必须唯一,否则后续配置会覆盖前面的配置,该元素拥有两个子元素(事务管理器),(数据源),这两个元素
阅读全文
摘要:类型处理器TypeHandler TypeHandler是Mybatis中一个非常重要的接口,用于处理参数类型,包括入参形式和返回结果集相关参数的转换。该接口定义了以下方法。其方法实现已经由子类BaseTypeHandler已经实现了。 void setParameter(PreparedState
阅读全文
摘要:mapper注册器(MapperRegistry) mapper注册器用于将所有的mapper接口添加到内存中,Mapper注册器自身维护着两个属性,config和knownMappers,其中knownMappers是一个 Class<?>, MapperProxyFactory<?>的集合,表示
阅读全文
摘要:@Mapkey的使用 在多值查询的时候,通常要把方法返回类型设置为List<Dto>类型,Mybatis为我们提供了另一种解决方式,通过K-V的形式将查询结果保存在Map中,这种实现方式只需要在方法上标注为@Mapkey即可。 如下代码:查询一个学生表,包含id,name,age三个字段,使用@ma
阅读全文
摘要:MethodSignature分析 MethodSignature为MapperMethod类提供了三个作用,获取待执行方法中的参数和@Param注解标注的参数名,获取标注有@MapKey的参数(@Mapkey作用在后续会讲到),方法的返回类型,获取SELECT操作时必要的标志位。以下是Method
阅读全文
摘要:MapperMethod中内部静态类SqlCommand的作用 在MapperMethod初始化中,会首先初始化两个内部静态类,SqlCommand就是其中之一,SqlCommand的作用主要体现在MapperMethod类的execute()方法里,SqlCommand为其提供了查询类型和方法id
阅读全文
摘要:Mybatis源码分析: MapperMethod功能讲解(1) MapperMethod主要的功能是执行SQL的相关操作,在初始化时会实例化两个组件Sql命令(SqlCommand)和方法签名(MethodSignature)这两个组件会在后续进行详解,同时MapperMethod必须提供Mapp
阅读全文

浙公网安备 33010602011771号