mybatis具体流程

首先show 配置

    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 配置druid连接池=============================== -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClass}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>


    <!-- SqlSessionFactory配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 加载mybatis核心配置文件 -->
        <property name="configLocation" value="classpath:/jdbc/mybatis/SqlMapConfig.xml"/>

        <property name="mapperLocations" value="classpath:service/mybatisdao/*.xml" />
    </bean>

    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
    </bean>
(当前方法会把配置读取创建一个sqlSessionFactoryBuilder,包括普通的配置和xxx.xml的配置)SqlSessionFactoryBean(buildSqlSessionFactory方法)-> SqlSessionFactoryBuilder(build方法)

上述过程中最复杂的过程还是buildSqlSessionFactory中的一些方法,有兴趣的可以自己看。其中包括了.xml如何转化为MappedStatement对象的操作。

 

接下来是curd的流程

(这里进行select操作,SqlSessionTemplate本身代理了一个DefaultSqlSessiondurian)SqlSessionTemplate(select方法) -> DefaultSqlSession(select) -> SimpleExecutor(父类的query方法)-> BaseExecutor (queryFromDatabase方法) -> SimpleExecutor(重写的doQuery方法) -> SimpleStatementHandler(query方法真正执行sql)

非常的复杂很显然,今天写的几篇是我这6天看源码的收获。离开舒适区的第一步。加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值