美文网首页
mybatis特性

mybatis特性

作者: 沐兮_d64c | 来源:发表于2019-06-27 01:37 被阅读0次

1,mybatis相关概念

1)mybatis持久层ORM框架,是对JDBC的封装。

image.png
2)对比
dbutils、springdao:对jdbc轻量级的封装。
hibernate:处理复杂业务灵活性差,复杂HQL难写且难理解。
mybatis:折中了dbutils、hibernate

2,mybatis配置

1)数据源配置

image.png
2)SqlSessionFactoryBean配置
加载mapper.xml sql映射文件(接口与sql实现映射):resolver.getResources("classpath*:com/hzq/*/dao/mapper/*.xml");
加载mybatis总的配置文件:resolver.getResource("classpath:mybatis/mybatis-config.xml")
image.png
3)通过SqlSessionFactory获取session
image.png
4)mybatis工作流程
image.png

2,mybatis特性

1)动态sql无需代码操作,动态拼接sql
包含动态查询、动态插入、动态更新、动态删除。

image.png
2)mybatis使用TheadLocal来对线程的SqlSession进行管理,保证线程的安全性。
3)每个mybatis应用,都是以SqlSessionFactory的实例为中心的, 创建SqlSession类似jdbc的connection
4)动态代理
BranchDao branchDao = sqlSession.getMapper(BranchDao.class);
mybatis基于jdk的动态代理,使用MapperProxyFactory为dao接口生成proxy对象。MapperProxy是一个InvocationHandler。
image.png
通过MapperMethod对象执行sql。
image.png

相关文章

网友评论

      本文标题:mybatis特性

      本文链接:https://www.haomeiwen.com/subject/acujtctx.html