Spring Boot下MyBatis的配置指南

2024年 2月 26日 107.0k 0

基于spring boot的mybatis配置详解

基于Spring Boot的MyBatis配置详解

Spring Boot是一种快速开发应用程序的框架,而MyBatis是一个流行的持久化框架。在Spring Boot中使用MyBatis可以简化数据库访问和数据持久化的过程。本文将详细解释如何在Spring Boot中配置和使用MyBatis,并提供具体的代码示例。

一、MyBatis配置

  • 添加相关依赖
  • 在使用MyBatis之前,首先需要在pom.xml文件中添加相关的依赖。

    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.1.4

    登录后复制

  • 配置数据源
  • 在Spring Boot中,可以使用嵌入式的H2数据库作为演示。在application.properties文件中添加以下配置:

    spring.datasource.url=jdbc:h2:mem:testdb
    spring.datasource.driver-class-name=org.h2.Driver
    spring.datasource.username=sa
    spring.datasource.password=

    登录后复制

  • 配置MyBatis
  • 在application.properties文件中添加以下配置:

    mybatis.mapper-locations=classpath:mapper/*.xml
    mybatis.type-aliases-package=com.example.domain

    登录后复制

    其中,mapper-locations指定了MyBatis映射文件的位置,type-aliases-package指定了实体类的包名。

  • 创建实体类
  • 创建一个User类作为示例实体类:

    package com.example.domain;

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

    登录后复制

  • 创建Mapper接口
  • 创建一个UserMapper接口,在接口中定义需要执行的数据库操作:

    package com.example.mapper;

    import com.example.domain.User;
    import org.apache.ibatis.annotations.Mapper;

    @Mapper
    public interface UserMapper {
    User getUserById(Long id);
    void saveUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
    }

    登录后复制

  • 创建Mapper映射文件
  • 在resources目录下创建mapper文件夹,并在该文件夹下创建UserMapper.xml文件:

    SELECT * FROM user WHERE id = #{id}

    INSERT INTO user(name) VALUES(#{name})

    UPDATE user SET name = #{name} WHERE id = #{id}

    DELETE FROM user WHERE id = #{id}

    登录后复制

    二、使用MyBatis进行数据库操作

  • 编写Service类
  • 编写一个UserService类,用于执行具体的数据库操作:

    package com.example.service;

    import com.example.domain.User;
    import com.example.mapper.UserMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    @Service
    public class UserService {
    @Autowired
    private UserMapper userMapper;

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

    public void saveUser(User user) {
    userMapper.saveUser(user);
    }

    public void updateUser(User user) {
    userMapper.updateUser(user);
    }

    public void deleteUser(Long id) {
    userMapper.deleteUser(id);
    }
    }

    登录后复制

  • 编写Controller类
  • 编写一个UserController类,用于接收外部请求并调用对应的Service方法:

    package com.example.controller;

    import com.example.domain.User;
    import com.example.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;

    @RestController
    @RequestMapping("/users")
    public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
    return userService.getUserById(id);
    }

    @PostMapping("/")
    public void saveUser(@RequestBody User user) {
    userService.saveUser(user);
    }

    @PutMapping("/{id}")
    public void updateUser(@PathVariable Long id, @RequestBody User user) {
    user.setId(id);
    userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
    userService.deleteUser(id);
    }
    }

    登录后复制

  • 启动应用程序
  • 编写一个启动类,并添加@SpringBootApplication注解:

    package com.example;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class Application {
    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }

    登录后复制

  • 测试接口
  • 可以使用Postman等工具发送HTTP请求,测试接口的调用。例如,发送GET请求:localhost:8080/users/1,即可查询id为1的用户信息。

    结语

    本文详解了在基于Spring Boot的项目中配置和使用MyBatis的过程,并提供了相关的代码示例。通过以上步骤,您可以在Spring Boot项目中轻松集成并使用MyBatis进行数据库操作。希望本文对您有所帮助!

    以上就是Spring Boot下MyBatis的配置指南的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论