深入浅出springboot2.x(10)整合MyBatis

本文详细介绍了如何在Spring Boot 2.x中整合MyBatis,阐述了MyBatis的优势及配置过程,包括MyBatis的简介、配置以及在Spring Boot中的整合方法,如使用MapperFactoryBean、MapperScannerConfigurer和@MapperScan注解。通过实例展示了如何创建实体类、映射文件、配置TypeHandler,并提供了通过接口操作数据库的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整合MyBatis框架

    应该说目前java持久层最为主流的技术已经是MyBatis,它比JPA和Hibernate更为简单易用,也更加灵活。在以管理系统为主的时代,Hibernate的模型化有助于系统的分析和建模,重点在于业务模型的分析和设计,属于表和业务模型分析的阶段。现在已经是移动互联网时代,特点是面向公众,相对而言业务比较简单,但是往往网站会拥有大量的用户,面对的问题主要是大数据、高并发和性能问题。因此在这个时代,互联网企业开发的难度主要集中在大数据和性能问题上,所以互联网企业更加关注的是系统的性能和灵活性。所以MyBatis应用非常广泛。

MyBatis简介

    MyBatis的官方定义为:MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的xml或注解,将接口和java的pojo映射成数据库中的记录。
    从这个官方定义可以看出,MyBatis是基于一种SQL到pojo的模型,它需要我们提供SQL、映射关系(xml或者注解,目前以xml为主)和pojo。但是对于SQL和pojo的映射关系,它提供了自动映射和驼峰映射等,使开发者的开发工作大大减少;由于没有屏蔽SQL,这对于追求高响应和性能的互联网系统是十分重要的,因此我们可以尽可能地通过SQL去优化性能,也可以做少量的改变以适应灵活多变的互联网应用。与此同时,它还能支持动态SQL,以适应需求的变化。
    MyBatis的配置文件包括两大部分,基础配置文件和映射文件。在MyBatis中也可以使用注解来实现映射,只是由于功能和可读性的限制,在实际工作中使用的比较少。spring本身是不支持MyBatis的,所以在spring的项目中都没有考虑MyBatis的整合。但是MyBatis社区为了整合spring自己开发了相应的开发包,因此在springboot中我们可以依赖MyBatis社区提供stater。在maven中加入依赖包:

	<dependency>
		<groupId>org.mybatis.spring.boot</groupId>
		<artifactId>mybatis-spring-boot-starter</artifactId>
		<version>1.3.1</version>
	</dependency>

MyBatis的配置

    MyBatis是一个基于SqlSessionFactory构建的框架。对于SqlSessionFactory而言,它的作用是生成SqlSession接口对象,这个接口对象是MyBatis操作的核心,而在MyBatis-spring的结合中甚至可以“擦除”这个对象,使其在代码中“消失”,这样做的意义是重大的,因为SqlSession是一个功能性的代码,“擦除”它之后,就剩下了业务代码,这样就可以使得代码更具可读性。因为SqlSessionFactory的作用是单一的,只是为了创建核心接口SqlSession,所以在MyBatis应用的生命周期中理当只存在一个SqlSessionFactory对象,并且往往会使用单例模式。而构建SqlSessionFactory是通过配置类来完成的,因此对于mybatis-spring-boot-starter,它会给予我们在配置文件进行Configuration配置的相关内容。
我们先来看一个简单的例子:
实体类:User(对应的表建表语句可以在上一节开头找)

package com.example.mybatisdemo;
import org.apache.ibatis.type.Alias;

@Alias(value="user")//MyBatis指定别名
public class User {
    private int id;
    private String userName;
    private SexEnum sex;
    private String note;

    public int getId() {
        return id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值