Spring Boot Mapper 是基于 Mybatis 框架的一种操作数据库的方式,它可以通过注解和 XML 文件来进行数据库操作,无需手写 SQL 语句,大大提高了开发效率。下面是一个简单的示例,展示如何使用 Mapper 进行数据库操作。

首先,需要在 Spring Boot 项目中引入 Mybatis 和 Mybatis-Spring 依赖:

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

接着,创建一个实体类 User:

public class User {
    private Long id;
    private String username;
    private String password;
    // getter 和 setter 方法省略
}

然后,在 resources 目录下创建一个 mapper 目录,用于存放 XML 文件和 Mapper 接口。在 mapper 目录下创建一个 UserMapper.xml 文件,用于定义 SQL 语句:

<!-- 定义命名空间 -->
<mapper namespace='com.example.mapper.UserMapper'>
    <!-- 定义查询语句 -->
    <select id='getUserById' parameterType='java.lang.Long' resultType='com.example.model.User'>
        SELECT * FROM user WHERE id = #{id}
    </select>
    <!-- 定义插入语句 -->
    <insert id='insertUser' parameterType='com.example.model.User'>
        INSERT INTO user(username, password) VALUES(#{username}, #{password})
    </insert>
</mapper>

注意,命名空间需要与 Mapper 接口的全限定名保持一致,SQL 语句中的参数和返回值类型需要与 Mapper 接口方法的参数和返回值类型保持一致。

接着,创建一个 UserMapper 接口:

@Mapper
public interface UserMapper {
    // 根据 id 查询用户信息
    User getUserById(Long id);
    // 插入一条用户信息
    void insertUser(User user);
}

在接口上加上 @Mapper 注解,告诉 Spring Boot 将其注册为 Mapper 接口。接口中定义了两个方法,分别对应 XML 文件中的两个 SQL 语句。

最后,在 Service 层中注入 UserMapper,并调用其方法进行数据库操作:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User getUserById(Long id) {
        return userMapper.getUserById(id);
    }

    @Override
    public void insertUser(User user) {
        userMapper.insertUser(user);
    }
}

这样就完成了使用 Spring Boot Mapper 进行数据库操作的示例。Mapper 的优点在于可以通过注解和 XML 文件快速、方便地进行数据库操作,而无需手写 SQL 语句,提高了开发效率。

Spring Boot Mapper 无需编写 SQL 语句轻松操作数据库 - 实战指南

原文地址: https://www.cveoy.top/t/topic/oiW1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录