Mybatis(一)实现单表的增删改查

1.1 什么是Mybatis

 

       MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL MapsData Access ObjectsDAO)。

 

 MyBatis参考资料官网:https://mybatis.github.io/mybatis-3/zh/index.html

 

官网对Mybatis的介绍更加具有权威性:

MyBatis 是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。

MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。

MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

 

  

MyBatis优点:

 

1、简单易学

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

2、灵活

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

3、解除sql与程序代码的耦合

       通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。对开发人员而言,核心sql还是需要自己优化:sqljava编码分开,功能边界清晰,一个专注业务、 一个专注数据。

 

4、提供映射标签,支持对象与数据库的orm字段关系映射。  

5、提供对象关系映射标签,支持对象关系组建维护。

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

 

 

MyBatis缺点: 

1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。  

2SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。 

3、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

 

MyBatisJDBC比较:

SQL夹在Java代码块里,耦合度高导致硬编码内伤,维护不易且实际开发需求中sql是有变化,频繁修改的情况多见。

 

MyBatisHibernateJPA比较:

长难复杂SQL,对于Hibernate而言处理也不容易,内部自动生产的SQL,不容易做特殊优化。基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。 导致数据库性能下降。

 

MyBatisiBatis比较:

MyBatisiBatis的升级版,用法有很多的相似之处,但是MyBatis进行了重要的改进。

1Mybatis实现了接口绑定,使用更加方便。

ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

2、对象关系映射的改进,效率更高。

3MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。

 

 

1.2 开发第一个Mybatis查询

 

新建一个java工程

添加jar包,如下图:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjdxy.html