码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis(一)入门介绍

时间:2018-03-11 02:51:45      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:设置   关联   jdb   对象   jdbc   xml文件   spring   输入参数   ble   

一、MyBatis的发展

    MyBatis 是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到google code, 并且改名MyBatis。2013年迁移到Github。

    MyBatis是一个持久层框架,它将jdbc的操作数据库进行封装,帮助开发者专注于sql本身,避开了注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc等繁琐的过程代码。

   MyBatis 通过xml或者注解方式将要执行的各种statement(statement、preparedStatement、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

 

二、MyBatis和Hibernate相比的优点

      先说Hibernate的优点:

           1、Hibernate 对JDBC进行了封装,减少SQL硬编码;

           2、避免了代码的映射规则,通过XML或注解避免了管理数据库连接;

           3、使用HQL,支持方言配置,方便数据库移植;

           4、在一个会话中不需要操作多个对象,只需要操作一个session(在spring下,都由spring来管理)。

     然后Hibernate的缺点:    

           1、在存储过程这方面并不是太好;

           2、对多表关联和复杂SQL操作不太友好,针对这方面,还需要自己写SQL;

           3、虽然使用HQL语言查询,但是性能不高,在处理比较大的系统和数据时,需要优化SQL提高效率;

    而MyBatis在一定程度上可以避免了Hibernate的缺点。MyBatis需要手动编写SQL语句和映射关系。

 

三、MyBatis 架构

       1、 MyBatist框架架构图片

         下图是MyBatist框架架构(自于MyBatis官方文档的图,the image is from MyBatis Official document)

                 技术分享图片

                                               (图片版权归mybatis 官方文档所有) 

        2、框架介绍

           1)SqlMapConfig.xml 是Mybatis的全局配置文件,配置了mybatis的运行环境等信息。MapperN.xmls是sql的映射文件,文件中配置了操作数据库  的sql语句,需要通过SqlMapConfig.xml加载;

          2)通过mybatis环境配置信息构造SqlSessionFactory(会话工厂);

          3)再通过SqlSessionFactory创建sqlSession会话(需要通过sqlSession操作数据库 );

          4)MyBatis 底层定义了Exectuor执行器接口操作数据库,Exectuor接口有两个实现,一个是基本执行器,一个是缓存执行器;

          5)MappedStatement是Mybatis底层封装对象,包装了mybatis配置信息以及sql映射信息。mapper.xml文件中一个sql对应一个MappedStatement对象,sql的id即是MappedStatement的id。

         6)MappedStatement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo, Executor通过MappedStatement 执行sql前将java对象映射到sql中,输入参数映射就是JDBC编程中对preparedStatement设置参数;

         7) 输出结果映射过程相当于JDBC编程中对结果的解析处理过程。

  

 

   

 

 

  

Mybatis(一)入门介绍

标签:设置   关联   jdb   对象   jdbc   xml文件   spring   输入参数   ble   

原文地址:https://www.cnblogs.com/Jomini/p/8535302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!