• Mybatis入门


    MyBatis是什么

            MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis的前身就是iBatis,iBatis本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名,所以市面上也会有人称为iBatis.

    特点介绍

    1. 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
    2. 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
    3. 解除sql与程序代码的耦合:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
    4. 提供映射标签,支持对象与数据库的orm字段关系映射
    5. 提供对象关系映射标签,支持对象关系组建维护
    6. 提供xml标签,支持编写动态sql

    MyBatis的优点

            1.基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。
            2.与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
            3.很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。
            4.能够与Spring很好的集成;
            5.提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

    MyBatis的缺点

           1.SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。
           2.SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

    MyBatis的模块图

    MyBatis的流程图

    MyBatis的使用过程
    1.配置bean

    2.写SqlMapConfig.xml配置文件,配置数据库连接以及对Mapper的管理

    3.配置SqlSessionFactory,或使用MyBatis自带的DefaultSqlSessionFactory,这个类实现了SqlSessionFactory,而SqlSessionFactory主要就是一个openSession的作用

    4.sql语句的写法两种,Mapper.xml或在Mapper.java中方法上写注解sql

    Myabatis的两者sql语句可以混合使用,达到互补的作用,注意id不能相同,不然会报错,id重复问题,没有所谓的优先级之说,两者的区别:

    Mapper.xml:

    优点:1.跟接口分离、统一管理

            2.复杂的语句可以不影响接口的可读性

    缺点:1.过多的XML文件

    Annotation注解:

    优点:1.接口就能看到sql语句,可读性高,不需要再去找xml文件,方便

             2.复杂的联合查询不好维护,代码的可读性差

    SqlSessionFactorySqlSessionMapper 推荐作用域

  • 相关阅读:
    基于android的远程视频监控系统——实现Camera预览
    安卓巴士移动开发者周刊第十三期
    【图片处理工具】Android游戏开发的好帮手
    [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)
    【笔记】Eclipse and Java for Total Beginners—013
    【笔记】Eclipse and Java for Total Beginners—003
    【笔记】Stanford OpenCourse—CS106A:Programming Methodology—002
    【笔记】Stanford OpenCourse—CS106A:Programming Methodology—005
    【笔记】Eclipse and Java for Total Beginners—008
    【笔记】Eclipse and Java for Total Beginners—004
  • 原文地址:https://www.cnblogs.com/liule66/p/12213151.html
Copyright © 2020-2023  润新知