当前位置:Gxlcms > 数据库问题 > (五)myBatis架构以及SQlSessionFactory,SqlSession,通过代理执行crud源码分析---待更

(五)myBatis架构以及SQlSessionFactory,SqlSession,通过代理执行crud源码分析---待更

时间:2021-07-01 10:21:17 帮助过:22人阅读

//connection SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession = sessionFactory.openSession(true); /* 获取到mapper对象 */ PersonMapping personMapping = sqlSession.getMapper(PersonMapping.class);
     personMapping.selectPersonById(2);

以上代码分为四步:

1.获取到SqlSessionFactory对象,

2.获取到Sqlsession对象,

3..获取到具体某一个Mapper对象,mapper在这里就是一个代码,用来代码接口之中的crud方法

4.执行具体的<select>之中定义的sql语句

前两两步感觉没什么必要记录了,直接看三,四步:
通过debug得到,当我们执行查询语句时,会跳转到MapperProxy对象当中的invoke方法,这个对象实现了jdk的动态代理接口InvocationHandler,用到了动态代理的模式,之后有了这个动态代理对象MapperPorxy,我们的crud就是通过这个代理对象来执行,所以我们才把获取到的对象叫做代理对象。如下就是这个MapperPorxy对象:

技术图片

我刚分析了一下,我觉得每一步都能看懂,整合起来就不懂了,感觉看的也很枯燥,没意思,说的是学习一下别人的这种设计模式,设计思想,但是我感觉我现阶段根本没有这个功底。

 

(五)myBatis架构以及SQlSessionFactory,SqlSession,通过代理执行crud源码分析---待更

标签:person   alt   数据处理   ESS   解析   代码   sel   HERE   注释   

人气教程排行