当前位置: 首页 > news >正文

48、Spring Boot 详细讲义(五)

3、集成MyBatis

3.1 MyBatis 概述

3.1.1 核心功能和优势

MyBatis 是一个 Java 持久层框架,它通过 XML 或注解配置 SQL 语句,将 Java 方法与 SQL 语句映射起来,消除了大量的 JDBC 代码,简化了数据库操作。MyBatis 的核心功能和优势包括:

  1. ORM(对象关系映射):通过 XML 配置文件或注解将 Java 对象与数据库表映射,自动化对象数据与数据库记录之间的转换。
  2. 动态 SQL:基于输入参数动态生成 SQL 语句,灵活处理各种查询条件。
  3. 代码简化:通过配置管理 SQL 语句,减少了手动编写 JDBC 的代码量。
  4. 跨数据库支持:支持多种数据库,如 MySQL、Oracle、PostgreSQL 等,提高了应用程序的可移植性。
  5. 与 Spring 集成:与 Spring 框架无缝集成,支持声明式事务管理和依赖注入。
3.1.2 动态 SQL 功能

MyBatis 的动态 SQL 功能允许在运行时根据条件动态生成 SQL 语句。常用的动态 SQL 元素包括:

  • <if>:根据条件包含或排除某个 SQL 片段。
  • <choose>:类似于 if-else,根据条件选择一个 SQL 片段。
  • <trim>:用于修饰周围的内容,如去除多余的 AND 或 OR。
  • <foreach>:用于批量处理,遍历集合参数。
  • <set>:用于更新语句,动态包含字段。

示例:

<select id="findUserByCondition" resultType="User">  
    SELECT * FROM users  
    <where>  
        <if test="username != null">  
            username LIKE '%'${username}'%'  
        </if>  
        <if test="email != null">  
            AND email = '${email}'  
        </if>  
    </where>  
</select>  

3.2 与 Spring Boot 集成

3.2.1 依赖和自动配置

在 Spring Boot 项目中集成 MyBatis,在pom.xml文件中添加Mybatis,Spring web 等相关依赖

<!--lombok-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.22</version>
</dependency>

<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

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

<!--druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.21</version>
</dependency>

<!-- spring web 需要的包 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.2.2 创建映射文件

MyBatis 的 SQL 映射文件需要放置在 src/main/resources 目录下,具体路径与包结构对应。例如:在resources目录下创建一个mapper文件夹,用来存储所有的mapper.xml文件

src/main/resources/  
  └── mapper  
       └── UserMapper.xml  
3.2.3 @Mapper 接口和扫描

在 Spring Boot 中,可以通过 @Mapper 注解标记 Mapper 接口,或者通过 @MapperScan 扫描指定包下的所有 Mapper 接口。

  1. 使用 @Mapper 注解
@Mapper  
public interface UserMapper {
     
    
    List<User> findAllUsers();  
    
    User findUserById(Long id);  
    
    void insertUser(User user);  
}  
  1. 配置 @MapperScan

    在入口类上添加注解

@SpringBootApplication  
@MapperScan("com.example.mybatis.mapper")  
public class MyBatisApp {
     
    
    public static void main(String[] args) {
     
        SpringApplication.run

相关文章:

  • 最新扣子实战教程,利用扣子平台通过在线表格记录,批量生图,再也不要一条条的粘贴提示词了
  • 如何查看网页或任意文档中的颜色数值
  • 如何用DeepSeek大模型提升MySQL DBA工作效率?实战案例解析
  • 英飞凌TLE9891 +TLE5501 有感油泵FOC控制方案
  • truss开源程序在生产中提供 AI/ML 模型的最简单方法
  • v837s-ov5640摄像头调试
  • 泊松分布详解:从理论基础到实际应用的全面剖析
  • Enovia许可释放
  • 3.vtkProp 和vtkProp3D
  • 三维物体消隐处理
  • numpy.ma.masked_where:屏蔽满足条件的数组
  • 企业数字化转型深度解析:政策驱动、核心要素、技术路径、实战策略与未来趋势
  • Sql Server(自用查看版)
  • 电路图通用设计规范
  • 串口通信简述
  • 系统监控 | 简易多个内网服务器的CPU和内存使用率监控 system_moniter
  • cryptozombies合约7
  • KF V.S. GM-PHD
  • 《Operating System Concepts》阅读笔记:p636-p666
  • OTA技术(一):原理与实现方案
  • 世界读书日|南京图书馆开了首个网络文学主题阅读空间
  • 中办、国办印发《农村基层干部廉洁履行职责规定》
  • 第六次国民体质监测展开,高抬腿俯卧撑等新增运动指标受关注
  • 海拔四百公里的救赎
  • 从高铁到住房:“富足议程”能否拯救美国的进步主义?
  • 遭遇FIFA三个转会窗禁令,申花有苦难言将选择赔偿