Mybatis中的SqlSession

mybatis简介:

它是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互,并且在JDBC操作的基础上做了封装和优化,

它借助灵活的SQL定制,参数以及结果集的映射方式,更好的适应了当前互联网技术的发展.

Mybatis优点:

1.稳定,灵活(动态sql),功能强大(池,日志,缓存)
2.学习以及使用成本低
3.解耦,SQL的可维护性,可复用性比较高

Mybatis中的SqlSession

Mybatis是通过SqlSession来实现与数据库会话的.(如下是对Mybatis中的一些理解)

在这里插入图片描述
1.Mybatis中使用的门面模式:对外提供API(app),对内封装接口(JDBC) LOG4J就是使用的门面模式
2.使用sqlsessiontemplate对象来访问数据库默认是没有事务的,新的事务会有新的sqlsession,底层是通过ThreadLoad绑定SqlSession到当前线程,保证SqlSession对象在当前线程中只有一份.
3.Mybatis中的池使用了亨元模式:目的是减少对象创建的次数,减少内存的消耗.
4.MyBatis在应用时,首先会基于建造模式构建SqlSessionFactory工厂(例如底层通过SqlSessionFactoryBuilder的Bulid方法进行构建),此工厂对象线程安全,可以被多个线程共享.当我们需要基于mybatis框架内实现数据库回话时,会借助SqlSessionFactory工厂对象创建SqlSession对象,此对象为一个会话对象,这个对象线程不安全,不可以多线程共享.SqlSession底层是hashmap,是线程不安全的.

sqlsession简单的工作流程如下
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值