自学内容网 自学内容网

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

原文地址:https://blog.csdn.net/qq_22910257/article/details/147220343

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!