MyBatis框架的详细讲解(优点与缺点)

文章目录

  • 前言
  • 一、Mybatis是什么?
    • 核心思想
  • 二、ORM
    • Mybatis的基本要素
  • 二、resultMap和resultType的区别:
    • resultMap自动映射区别:
    • 使用@param注解实现参数入参
    • resultMap高级结果映射:
    • 动态SQL:
  • 三、Mybatis的优缺点
    • 优点
    • 缺点
  • 总结


前言

看了孙帅老师在blibli上的Spring讲解,对MyBatis与Spring框架又有了一些深刻的理解,给大家强烈推荐


一、Mybatis是什么?

MyBatis框架:是一个开源的数据持久层框架

核心思想

核心思想:将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。优点:在不修改程序代码的情况下,直接在配置文件中修改SQL语句。

二、ORM

ORM :对象/关系映射
O:程序中的实体类
R:数据库中的实体表格
M:在对象模型和关系型数据库中建立起对应关系,并提供一种机制,通过JavaBean对象去操作数据库表中的数据。
在实际开发中,程序员使用面向对象的技术操作数据,而当存储数据时,使用的却是关系型数据库,这时使用ORM在对象模型和关系型数据库中的表建立一座桥梁,使用API直接操作JavaBean 对象就可以实现数据的存储、查询、更改、删除等操作。
Mybatis通过简单的XML或者注解进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。

Mybatis的基本要素

a:核心接口和类
b:MyBatis核心配置文件(MyBatis-config.xml)
c:SQL映射文件(mapper.xml)
内含MyBatis与Spring详细讲解

二、resultMap和resultType的区别:

resultType直接表示返回类型,包括基础数据类型和复杂数据类型;resultMap:是对外部resultMap定义的引用,对应外部resultMap的id,表示返回结果映射到哪一个resultMap上。使用场景:数据库字段与对象属性不一致或者需要做复杂的联合查询以便自动控制映射结果。

resultMap自动映射区别:

<settings>
<setting name="autoMappingBeavior" valur="PARTTAL"/>
</settings>

默认的映射级别为:PARTIAL
NONE:禁止自动匹配

使用@param注解实现参数入参

普通:

public int updatepwd1(User user);

参数入参:

public int updatepwd2(@Param("id") Integer id,@Param("userPassword") String pwd);

优点:代码可读性较高。

resultMap高级结果映射:

assiciation:映射到javaBean的某个复杂类型。
collection:映射到javaBean的某个复杂类型是集合列表。

动态SQL:

1.if:实现简单的条件选择
2.choose:相当于Java中的switch语句
3.where:简化SQL语句中where的条件判断
4.set:解决动态更新语句
5.trim:可以灵活去除多余的关键字

三、Mybatis的优缺点

优点

1.与JDBC相比,减少了50%以上的代码量。
2.MyBatis是最简单的持久化框架,小巧并且简单易学。
3.提供映射标签,支持对象与数据库的ORM字段关系映射。
4.提供XML标签,支持编写动态SQL语句。

缺点

1.SQL语句编写工作量较大,对开发人员有一定的SQL语句功底要求。
2.SQL语句依赖于数据库,不能随便更改。

总结

以上就是今天的内容,本文介绍了MyBatis的使用,而MyBatis框架给我们大家简化了大量的代码量,让我们使用起来更简单更方便。(下期与大家讲解什么是并发以及隔离属性的使用)

你可能感兴趣的:(Spring-Mybatis,mybatis,java,mysql)