赞
踩
它是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互,并且在JDBC操作的基础上做了封装和优化,
它借助灵活的SQL定制,参数以及结果集的映射方式,更好的适应了当前互联网技术的发展.
1.稳定,灵活(动态sql),功能强大(池,日志,缓存)
2.学习以及使用成本低
3.解耦,SQL的可维护性,可复用性比较高
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简单的工作流程如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。