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

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

前提

Employeeテーブルのレコードは以下の通りとします。

ID NAME AGE
1 takahashi 20

Spring スタータープロジェクトで選択する依存関係は以下の通りとします。

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

@Mapperアノテーションを付与したインタフェースのメソッドに、@Deleteアノテーションを付与します。

@DeleteアノテーションにはSQL文を記述します。

従業員を表すPOJOです。

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;
}

従業員テーブルを操作するマッパーインタフェースです。

package jp.co.confrage.repository;

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

@Mapper
public interface EmployeeMapper {
  @Delete("delete from employee where id=#{id}")
  int deleteById(@Param("id") Integer id);
}

@Mapperアノテーションを付与することで、DIが可能になります。

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.deleteById(1);
    System.out.println(count); // 削除件数
    return "sample";
  }
}

Spring Bootアプリケーションを起動し、curlコマンドを実行します。

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

以下が標準出力されます。

1

コメント

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