Home > Java > javaTutorial > Configuration Guide for MyBatis under Spring Boot

Configuration Guide for MyBatis under Spring Boot

王林
Release: 2024-02-26 08:57:05
Original
1259 people have browsed it

基于Spring Boot的MyBatis配置详解

Detailed explanation of MyBatis configuration based on Spring Boot

Spring Boot is a framework for rapid application development, and MyBatis is a popular persistence framework. Using MyBatis in Spring Boot can simplify the process of database access and data persistence. This article will explain in detail how to configure and use MyBatis in Spring Boot and provide specific code examples.

1. MyBatis configuration

  1. Add relevant dependencies

Before using MyBatis, you first need to add relevant dependencies in the pom.xml file.

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>
Copy after login
  1. Configuring the data source

In Spring Boot, you can use the embedded H2 database as a demonstration. Add the following configuration in the application.properties file:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Copy after login
  1. Configuration MyBatis

Add the following configuration in the application.properties file:

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

Among them, mapper-locations specifies the location of the MyBatis mapping file, type-aliases-package specifies the package name of the entity class.

  1. Create entity class

Create a User class as a sample entity class:

package com.example.domain;

public class User {
    private Long id;
    private String name;
    // 省略getter和setter方法
}
Copy after login
  1. Create Mapper interface

Create a UserMapper interface and define the database operations that need to be performed in the interface:

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);
}
Copy after login
  1. Create Mapper mapping file

Create the mapper folder in the resources directory, and Create the UserMapper.xml file in this folder:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.domain.User">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="name" property="name" jdbcType="VARCHAR"/>
    </resultMap>
    <select id="getUserById" resultMap="BaseResultMap">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <insert id="saveUser">
        INSERT INTO user(name) VALUES(#{name})
    </insert>
    <update id="updateUser">
        UPDATE user SET name = #{name} WHERE id = #{id}
    </update>
    <delete id="deleteUser">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>
Copy after login

2. Use MyBatis for database operations

  1. Write a Service class

Write a UserService class , used to perform specific database operations:

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);
    }
}
Copy after login
  1. Write a Controller class

Write a UserController class for receiving external requests and calling the corresponding Service method:

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);
    }
}
Copy after login
  1. Start the application

Write a startup class and add @SpringBootApplicationAnnotation:

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);
    }
}
Copy after login
  1. Test interface

You can use tools such as Postman to send HTTP requests and test the call of the interface. For example, send a GET request: localhost:8080/users/1 to query the user information with ID 1.

Conclusion

This article explains in detail the process of configuring and using MyBatis in a Spring Boot-based project, and provides relevant code examples. Through the above steps, you can easily integrate and use MyBatis for database operations in your Spring Boot project. Hope this article helps you!

The above is the detailed content of Configuration Guide for MyBatis under Spring Boot. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template