简单认识MyBatis

2022-09-08 14:01:08 浏览数 (1)

MyBatis是什么

MyBatis是一款持久层框架,支持自定义SQL、存储过程和高级映射。 MyBatis免除所有JDBC代码以及设置参数和获取结果集的工作 MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JAVAPOJO为数据库中的记录。

MyBatis优点和缺点

优点: 基于SQL语句编程,相当灵活,不会对程序和数据库造成侵入,通过XML写SQL,sql与代码低耦合,便于统一管理,还可以书写动态SQL语句,便于重用。 与JDBC相比,免除所有JDBC代码设置参数及获取结果的工作,不需要手动链接,消除了大量冗余代码。 兼容性强,因为是靠JDBC链接数据库的,所有JDBC支持的数据库,MyBatis都支持。 完美兼容Spring。 缺点: SQL编写工作量大,对开发人员SQL功底有一定要求。 迁移性差,SQL语句依赖于数据库

resultType和resultMap得区别

  1. resultType:直接标识返回类型,包括基本类型和复杂数据类型。

resultMap:外部resultMap定义得引用,通过对应的外部resultMap的id,表示结果映射到哪个resultMap上,一般用于字段名和属性名不一致的情况,或者需要做复杂的联合查询以便自由控制映射 结果俩者的关链 当进行查询时,查询出来的每个字段都会放在一个Map里,当查询元素返回属性是resultType的时候,会根据键值对取出value来赋值给指定的属性。其实MyBatis的每个查询映射的返回类型都是resultMap,只是当我们使用resultType的时候,会自动把对应的值赋给所指定的对象属性,当使用resultMap时候,因为map不是很好的表示领域,我们就进一步的转化为对应的实体对象。resultMap主要作用于复杂的联合查询上。 注意:

  1. resultMap和resultType只能同时存在一个。
  2. 当resultType返回的是集合类型,应该写具体集合中元素的类型,不应该返回集合本身。如
代码语言:javascript复制
List<String> selectAll();
那么xml中resultType返回值应该是resultType="java.util.List"

0 人点赞