Mybatis应用及源码分析
文章平均质量分 94
分析mybatis的源码设计,以及如何集成spring
sermonlizhi
行百里者半九十
展开
-
Mybatis整合Spring核心原理
一、Mybatis集成Spring原理Mybatis是一个单独的半ORM框架,可以与Spring集成使用,也可以单独使用,单独使用代码如下:加载mybatis.xml的配置文件,然后解析配置文件,创建一个DefaultSqlSessionFactory的工厂对象,通过openSession()打开一个数据库连接的会话,通过getMapper()方法可以为对应的Mapper接口生成一个MapperProxy的代理对象,然后直接调用这个Mybatis的代理对象,就可以执行其中定义的SQL方法InputSt原创 2021-11-27 11:07:43 · 1751 阅读 · 1 评论 -
Mybatis 配置文件解析(一)
一、Mybatis配置1.1 配置全局文件在使用MyBtis的时候,我们首先需要配置一个全局配置文件,在这个配置文件中,我们可以配置MyBatis的属性、数据源、插件、别名、基础设置以及SQL配置文件的路径等其中在<mappers>标签中,可以定义SQL配置文件的信息,Mybatis提供了四种配置SQL文件的方式,但第四种我们通常都不会用,而第一种和第三种,指定包路径或Mapper接口路径的用法,都需要xml的文件名和接口名一样;而第二种注解指定xml,不需要一样,是因为在xml中的nam原创 2021-12-20 15:43:48 · 1076 阅读 · 0 评论 -
Mybatis 配置文件解析(二)
一、解析前操作在上一篇文章《Mybatis配置文件解析(一)》中,介绍了Mybatis一些基础的解析,那些都是很基础的设置,MyBatis最重要的文件解析是SQL配置文件的解析,这篇文章将重点介绍Mybatis是如何解析SQL配置文件的Mybatis中提供了四种配置SQL文件的方式,但最后一种用的比较少,主要是前面三种<mappers> <!--1.必须保证接口名(例如IUserDao)和xml名(IUserDao.xml)相同,还必须在同一个包中--> <原创 2021-12-20 23:22:08 · 1120 阅读 · 0 评论 -
Mybatis 配置文件解析(三)
一、解析注解在《Mybatis 配置文件解析(二)》已经完成了SQL配置文件的解析,接下来,就是对Mapper接口方法上的注解进行解析了在解析方法前,会先对Mapper接口上的@CacheNamespace和@CacheNamespaceRef注解进行解析,如果SQL配置文件也配置了缓存,那么Mapper接口上的缓存配置将覆盖掉SQL配置文件中缓存配置然后获取接口的所有方法,排除桥接方法,遍历其他的所有的方法,如果方法上有注解,就会生成一个MappedStatement对象parseCache();原创 2021-12-21 15:10:15 · 487 阅读 · 0 评论 -
Mybatis SQL执行流程(二)
在《Mybatis SQL执行流程(一)》中我们已经通过SqlSession的getMapper()方法获得了Mapper接口的代理对象,此时就可以直接通过调用代理对象的方法来执行SQL语句了,具体又是怎么执行的呢?这一节将重点介绍SQL的执行流程Mapper接口代理对象对应的InvocationHandler实现类是MapperProxy,所以当调用接口的方法时,首先就会进入到MapperProxy的invoke()方法中,我们先看下MapperProxy的invoke()方法实现在方法调用时,如果是原创 2021-12-22 13:43:06 · 904 阅读 · 0 评论 -
Mybatis SQL执行流程(一)
在前面三篇关于Mybatis配置文件解析的文章中,已经介绍过了,Mybatis会把全局配置文件和SQL配置文件解析的结果全部存在Configuration类的实例中而我们在使用Mybatis执行SQL是,首先需要创建一个SqlSessionFactory的工厂实例,在SqlSessionFactoryBuilder的build(Configuration config)方法中,就会把解析得到的配置作为入参,构造一个DefaultSqlSessionFactory实例// 到这里配置文件已经解析成了Con原创 2021-12-22 13:51:33 · 603 阅读 · 0 评论