入门级MyBatis/Mybatis-Plus介绍及应用指南

MyBatis 介绍及应用指南


MyBatis 简介

MyBatis 是一个优秀的持久层框架,它支持自定义 SQL、存储过程和高级映射。MyBatis 几乎消除了所有的 JDBC 代码和手动设置参数以及检索结果的步骤,使得开发人员能够更专注于 SQL 语句和结果映射。MyBatis 提供了 XML 或注解两种方式来配置 SQL 语句,将基本类型、Map 接口和 Java POJO(普通的 Java 对象)映射到数据库记录。

主要特点

  • SQL 映射:通过 XML 或注解方式将 SQL 语句与 Java 方法进行映射。
  • 参数映射:支持多种参数映射方式,包括位置参数、命名参数和自定义类型处理器。
  • 结果映射:可以将 SQL 查询的结果映射为 Java 对象,并定义映射规则将查询结果中的列与 Java 对象的属性进行对应。
  • 动态 SQL:提供了强大的动态 SQL 功能,可以根据条件动态生成 SQL 语句。
  • 事务支持:MyBatis 可以管理数据库事务,支持通过配置文件或编程方式来控制事务的提交和回滚。
  • 插件机制:提供了插件机制,可以通过自定义插件来扩展框架的功能,如日志记录、性能监控等。

MyBatis应用指南

1. 引入依赖

在你目中引入MyBatis的依赖。通过在pom.xml(对于Maven项目)或build.gradle(对于Gradle项目)中添加相应的依赖项来完成。

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

引入数据库驱动依赖,例如MySQL驱动:

	<dependency> 
	  <groupId>mysql</groupId> 
	  <artifactId>mysql-connector-java</artifactId> 
	  <version>最新版本号</version> <!-- 请替换为当前可用的最新版本号 --> 
	</dependency>

2. 配置 MyBatis

MyBatis 的配置方式有两种:基于 XML 的配置和基于注解的配置。通常,我们会使用 XML 配置文件(mybatis-config.xml)来配置 MyBatis 的环境信息(如数据源、事务管理器等)和映射文件的位置。

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE configuration  
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  "http://mybatis.org/dtd/mybatis-3-config.dtd">  
<configuration>  
    <environments default="development">  
        <environment id="development">  
            <transactionManager type="JDBC"/>  
            <dataSource type="POOLED">  
                <property name="driver" value="你的数据库驱动"/>  
                <property name="url" value="你的数据库URL"/>  
                <property name="username" value="你的数据库用户名"/>  
                <property name="password" value="你的数据库密码"/>  
            </dataSource>  
        </environment>  
    </environments>  
    <mappers>  
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>  
    </mappers>  
</configuration>

3. 创建 Mapper 接口

Mapper 接口是 MyBatis 中的一个核心概念,它定义了操作数据库的方法。这些方法会在 MyBatis 的映射文件中找到对应的 SQL 语句。

public interface BlogMapper {  
    Blog selectBlog(int id);  
}

4. 编写 Mapper XML

Mapper XML 文件包含 SQL 语句和映射规则。MyBatis 会将这些 SQL 语句映射到 Mapper 接口的方法上。

<!DOCTYPE mapper  
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
<mapper namespace="org.mybatis.example.BlogMapper">  
  <select id="selectBlog" resultType="Blog">  
    SELECT * FROM Blog WHERE id = #{id}  
  </select>  
</mapper>

5. 使用 MyBatis

最后,你可以通过 MyBatis 的 SqlSessionFactory 来获取 SqlSession,然后通过 SqlSession 来执行 Mapper 接口中的方法。

String resource = "org/mybatis/example/mybatis-config.xml";  
InputStream inputStream = Resources.getResourceAsStream(resource);  
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
try (SqlSession session = sqlSessionFactory.openSession()) {  
  BlogMapper mapper = session.getMapper(BlogMapper.class);  
  Blog blog = mapper.selectBlog(101);  
  System.out.println(blog);  
}

MyBatis-Plus 介绍及应用指南


MyBatis-Plus 简介

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,它在 MyBatis 的基础上只做增强而不做改变,旨在简化开发、提高效率。MyBatis-Plus 提供了许多实用的功能,如自动注入基本 CRUD 操作、内置通用 Mapper 和 Service、强大的条件构造器、支持 Lambda 表达式等。

主要特点

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响。
  • 损耗小:启动即会自动注入基本 CRUD,性能基本无损耗,直接面向对象操作。
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器。
  • 支持 Lambda 形式调用:通过 Lambda 表达式方便地编写各类查询条件,无需担心字段写错。
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置。
  • 支持 ActiveRecord 模式:实体类只需继承 Model 类即可进行强大的 CRUD 操作。
  • 内置代码生成器:支持快速生成 Mapper、Model、Service、Controller 层代码,支持模板引擎和自定义配置。
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件后写分页等同于普通 List 查询,支持多种数据库。
  • 内置性能分析插件:可输出 SQL 语句及其执行时间,有助于快速揪出慢查询。
  • 内置全局拦截插件:提供全表 delete、update 操作智能分析阻断,也可自定义拦截规则,预防误操作。

MyBatis-Plus 应用指南

1. 添加MyBatis-Plus依赖

首先,你需要在你的项目中添加MyBatis-Plus的依赖。如果你使用Maven,可以在pom.xml文件中添加如下依赖(注意替换为最新的版本号):

<dependency>  
    <groupId>com.baomidou</groupId>  
    <artifactId>mybatis-plus-boot-starter</artifactId>  
    <version>你的版本号</version>  
</dependency>

2. 配置数据源

在application.yml或application.properties配置文件中配置数据源信息,包括数据库驱动、URL、用户名和密码等。

spring:  
  datasource:  
    driver-class-name: com.mysql.cj.jdbc.Driver  
    url: jdbc:mysql://localhost:3306/yourdatabase?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai  
    username: root  
    password: yourpassword

3. 创建实体类

根据数据库表结构创建对应的实体类,并使用MyBatis-Plus提供的注解来映射表名和字段。

import com.baomidou.mybatisplus.annotation.TableName;  
import lombok.Data;  
  
@Data  
@TableName("your_table_name")  
public class YourEntity {  
    private Long id;  
    private String name;  
    // 其他字段...  
}

4. 创建Mapper接口

Mapper接口是MyBatis-Plus中的一个核心概念,它继承了BaseMapper接口,定义了操作数据库的方法。你无需实现这些方法,因为MyBatis-Plus会在运行时动态代理这些方法。

import com.baomidou.mybatisplus.core.mapper.BaseMapper;  
  
public interface YourEntityMapper extends BaseMapper<YourEntity> {  
    // 这里可以定义一些自定义的方法,如果需要的话  
}

5. 扫描Mapper接口

在Spring Boot的启动类上添加@MapperScan注解,指定Mapper接口所在的包路径,以便Spring Boot能够扫描到这些接口并创建对应的Bean。

import org.mybatis.spring.annotation.MapperScan;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
  
@SpringBootApplication  
@MapperScan("com.yourpackage.mapper") // 替换为你的Mapper接口所在的包路径  
public class YourApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(YourApplication.class, args);  
    }  
}

6. 使用MyBatis-Plus

现在,你可以在你的服务层或控制器中注入Mapper接口,并调用其方法来操作数据库了。


import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Service;  
  
@Service  
public class YourService {  
  
    @Autowired  
    private YourEntityMapper yourEntityMapper;  
  
    public List<YourEntity> listAll() {  
        return yourEntityMapper.selectList(null);  
    }  
  
    // 其他业务方法...  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值