Mybatis映射器的内部组成

一般而言,一个映射器是由3个部分组成:

      #MappedStatement,它保存映射器的一个节点(select|insert|delete|update)。

并且包括许多我们配置的sql,sql的id、缓存信息,resultMap,parameterType、resultType、

languageDriver等重要的配置内容。

      #SqlSource,它是提供BoundSql对象的地方,它是MappedStatement的一个属性。

      它的主要作用是根据参数和其他规则组装sql。

      #BoundSql,它是建立SQL和参数的地方,他有3个常用的属性:SQL、parameterObject、

parameterMappings。

      parameterObject是参数,可以是简单对象,pojo、map或者@param注解的参数。

      parameterMappings,它是一个list,每一个元素都是parameterMapping对象,这个对象会描述包括

属性、名称、表达式、javaType、jdbcType、typeHandler等重要信息。

      sql属性就是我们书写再映射器里面的一条sql。



SqlSession下四大对象:

      #Executor代表执行器,由它来调度StatementHandler、ParameterHandler、ResultHandler等来执行对应的SQL。

      #StatementHandler的作用是使用数据库的Statement(PrepareStatement)执行操作,它是四大对象的核心。

      #ParameterHandler用于sql对参数的处理。

      #ResultHandler是进行最后数据集(ResultSet)的封装返回处理的。


SqlSession是通过Executor创建StatementHandler来运行的,而StatementHanlder要经过下面三步:

      1):prepared与编译sql

      2):parameterize设置参数

      3):query/update执行sql。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值