How to use @Update annotation in Spring + MyBatis

How to use @Update annotation in Spring + MyBatis

assumption

The records in the Employee table should be as follows

ID NAME AGE
1 takahashi 20

The dependencies to be selected for the Spring starter project should be as follows

Spring + MyBatisの@Selectアノテーションの使い方

The @Update annotation is added to the method of the interface to which the @Mapper annotation is added.

The @Update annotation describes a SQL statement.

This is a POJO that represents an employee.

package jp.co.confrage.entity;

import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class Employee {
  private Long id;
  private String name;
  private Integer age;
}

Mapper interface to manipulate employee tables.

package jp.co.confrage.repository;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

@Mapper
public interface EmployeeMapper {
  @Update("update employee set name = #{name}")
  int update(@Param("name") String name);
}

DI is enabled by granting @Mapper annotation.

REST Controller.

package jp.co.confrage.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import jp.co.confrage.repository.EmployeeMapper;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@RestController
public class DemoController {
  private final EmployeeMapper employeeMapper;

  @GetMapping("/sample")
  public String sample() {
    final var count = employeeMapper.update("yamada");
    System.out.println(count); // update件数
    return "sample";
  }
}

Start the Spring Boot application and run the curl command.

curl -X GET http://localhost:8080/sample

The following is standard output

1

コメント

タイトルとURLをコピーしました