SSM框架---Mybatis

来源:互联网 发布:常用办公软件有哪些 编辑:程序博客网 时间:2024/06/04 18:55

1.什么是MyBatis

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java  POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。(类似hibernate)

2.为什么要使用mybaits框架?(开发者使用感想)

       1)效率上最优:相比hibernate而言,mybatis的体积如同九牛一毛,加载速度快,运行速度快,极大的提供和程序和数据库之间的交互效率;

       2)灵活性最强:mybatis框架的实现是基于开发者对SQL语句的使用,因此开发者可以非常灵活的对SQL语句进行编写和修改已到达需要的结果;

    4)功能强大:支持对数据库的所有操作,譬如存储过程,执行pl/sql块等。

       3)学习性强:通过对mybaits框架的时候,开发者可以更好更多的结合数据库进行SQL语句的编写,

3.底层实现(如何使用)

深刻理解Mybatis 实现原理再加上学校学习的就可以了,两种配置方法XML配置方法,注释配置方法。

配置方法的底层实现:

通过工厂factory加载带有数据库连接的配置文件,并解析mybatis的映射文件,根据dao层调用的id找到映射文件中的相关的sql语句,并进行对数据库的操作,如果是查询则根据映射文件的resultTyperesultMap的配置内容通过反射创建相关对象并进行封装。

注解方法的底层实现:

通过工厂factory加载带有数据库连接的配置文件,加载mapper类,根据dao层调用的id找到mapper类中的相关的方法和sql语句,并进行对数据库的操作,如果是注解描述的内容通过反射创建相关对象并进行封装。

 

4.Mybatis优缺点

优点:

1、简单易学

       mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2、灵活

       mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多

3、解除sql与程序代码的耦合 通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

4、提供映射标签,支持对象与数据库的orm字段关系映射 
5、提供对象关系映射标签,支持对象关系组建维护

 6、提供xml标签,支持编写动态sql

缺点

1. sql工作量很大,尤其是字段多、关联表多时,更是如此。

 

2. sql依赖于数据库,导致数据库移植性差。

 

3. 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。

 

4. 字段映射标签和对象关系映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。(比如配置了一对多Collection标签,如果sql里没有join子表或查询子表的话,查询后返回的对象是不具备对象关系的,即Collection的对象为null

 

5. DAO层过于简单,对象组装的工作量较大。

 

6.  不支持级联更新、级联删除。

 

7. 编写动态sql,不方便调试,尤其逻辑复杂时。

 

8 提供的写动态sqlxml标签功能简单(连struts都比不上),编写动态sql仍然受限,且可读性低。

 

9. 使用不当,容易导致N+1sql性能问题。

 

10. 使用不当,关联查询时容易产生分页bug

 

11. 若不查询主键字段,容易造成查询出的对象有覆盖现象。

 

12. 参数的数据类型支持不完善。(如参数为Date类型时,容易报没有getset方法,需在参数上加@param

 

13. 多参数时,使用不方便,功能不够强大。(目前支持的方法有map、对象、注解@param以及默认采用012索引位的方式)

 

14. 缓存使用不当,容易产生脏数据。总结

       mybatis的优点同样是mybatis的缺点,正因为mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限。

      mybatis没有hibernate那么强大,但是mybatis最大的优点就是简单小巧易于上手,方便浏览修改sql语句。

5.Mybatis运行原理

原理详解:

        MyBatis应用程序根据XML配置文件创建SqlSessionFactorySqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSessionSqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession

 

 

 

5555555

原创粉丝点击