一、基础介绍
Mybatis的功能架构分为三层:
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
摘自:https://blog.youkuaiyun.com/qq_39654446/article/details/78133810
二、springboot引用mybatis(需要下面三个依赖)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- Use MySQL Connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
这个starter配置后就不用再去配置引用mybatis的很多琐碎的配置了,在properties文件中配置下mysql相关基础配置即可。
如果有通用mapper依赖,则第一个以及第三个mysql的依赖也是已经包括了。
<dependency>
<groupId>com.nuctech.ai</groupId>
<artifactId>nuctechai-common-mapper</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
三、mapper.xml常用标签
(1)id="xxxx" >>> 表示此段sql执行语句的唯一标识,也可以是接口的方法名称【必须一致才能找到】
(2)parameterType="" >>>表示该sql语句中需要传入的参数, 类型要与对应的接口方法的类型一致【可选】(注:如果这里不指明也可以在DAO层利用注解指明,例如:)
(3)resultMap=“ ”>>> 定义出参,调用已定义的<resultMap>映射管理器的id值,需要注意的是这里的jdbctype并不是基础类型(具体直接百度一查即可,此处不再赘述)
调用
(4)resultType=“ ”>>>定义出参,匹配普通java类型或自定义的pojo【出参类型若不指定,将为语句类型默认类型,如<insert>语句返回值为int】
这map也行尤其是对象类型的时候,这样可以在Impl层将List<Map<String,Object>>在转换成前台的对象,这样有个好处就是后台数据对前台不可见,保证前后台数据分离,安全。
(5)sql片段标签<sql>:通过该标签可定义能复用的sql语句片段,在执行sql语句标签中直接引用即可。这样既可以提高编码效率,还能有效简化代码,提高可读性。需要配置的属性:id="" >>>表示需要改sql语句片段的唯一标识, 引用:通过<include refid="" />标签引用,refid="" 中的值指向需要引用的<sql>中的id=“”属性
后面具体见
https://blog.youkuaiyun.com/qq_29233973/article/details/51433924
这个博客写的不错。