【Mybatis】——初识架构

前言

   看了springMVC视频觉得自己对Mybatis的理解不深,所以回来再看了一遍视频。


概述

     Mybatis是一个持久层的框架,是apache下的顶级项目。它的前身是iBatis,2010年这个项目由apache software foundation迁移到Google code,并且改名为Mybatis,实质上也Mybatis对ibatis进行一些改进。2013年11月迁移到Github。


    Mybatis是一个优秀的持久层框架,它对JDBC的操作数据库的过程进行了封装,使开发者只需要关注SQL本身,而不需要花费精力去处理如:注册驱动、创建connection、创建satement、手动设置参数、结果集检索等JDBC繁杂的过程代码。


    Mybatis通过XML或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过Java对象和statement中的SQL进行映射生成最终执行的SQL语句,最后由Mybatis框架执行SQL并将结果映射成Java对象返回。


Mybatis框架


【Mybatis】——初识架构_第1张图片


    SqlMapConfig.xml是Mybatis的全局配置文件,名称可以是不固定的。在这个文件中配置了数据源、事务等Mybatis运行环境配置映射文件。


   SqlSessionFactory是会话工厂,它根据配置文件创建工厂,作用是创建sqlSession.

SqlSession是一个会话接口,它是面向用户的接口。作用是操作数据库,发出sql增删改查。


    Executor是执行器,也是一个接口,可以是基本执行器和缓存执行器。作用是SqlSession内部通过执行器操作数据库。


    mapped statement是底层封装的对象。作用是对操作数据库存储封装,包括sql语句,输入参数和输入结果类型。


Mybatis和hibernate的对比

    Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。


    Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。

   Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate的学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。


    所以,在架构的选择上还是要按照用户的需求在有限的资源环境下做出维护性、扩展性良好的软件架构。

你可能感兴趣的:(J2EE,------------ssm)