[Mybatis] 반영 자동 검증(Validation) 개념괴 예제

MyBatis는 반영 자동 검증(Validation)을 직접적으로 지원하지는 않습니다. 그러나 애플리케이션에서 데이터베이스에 데이터를 저장하기 전에 데이터의 유효성을 검증하고 처리하는 방식을 구현할 수 있습니다. 이를 통해 데이터베이스에 잘못된 데이터가 저장되는 것을 방지하거나 제어할 수 있습니다.

예제: 반영 자동 검증

  1. DTO 클래스 작성: 데이터 유효성을 검증하기 위한 DTO 클래스를 작성합니다.
public class Book {
    private Long id;
    private String title;
    private String author;
    // ... Getters and setters
}` 
  1. 검증 로직 추가: 애플리케이션 레이어에서 데이터 유효성을 검증하는 로직을 추가합니다.
public class BookService {

    public void insertBook(Book book) {
        // 데이터 유효성 검증 로직
        if (book.getTitle() == null || book.getTitle().isEmpty()) {
            throw new IllegalArgumentException("Title cannot be empty");
        }
        if (book.getAuthor() == null || book.getAuthor().isEmpty()) {
            throw new IllegalArgumentException("Author cannot be empty");
        }

        // 데이터 삽입 로직
        // sqlSession.insert("insertBook", book);
    }
}` 
  1. 애플리케이션에서 호출: 데이터 유효성 검증이 완료된 후에 데이터를 삽입하는 메서드를 호출합니다.
public class Main {

    public static void main(String[] args) {
        InputStream inputStream = Main.class.getResourceAsStream("/mybatis-config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession sqlSession = sessionFactory.openSession()) {
            BookMapper bookMapper = sqlSession.getMapper(BookMapper.class);
            BookService bookService = new BookService();

            Book book = new Book();
            book.setTitle("My Book Title");
            book.setAuthor("John Doe");

            // 데이터 유효성 검증 후 데이터 삽입
            bookService.insertBook(book);
        }
    }
}` 

위의 예제에서 BookService 클래스 내부에서 데이터 유효성 검증을 수행한 후, 유효한 데이터인 경우에만 데이터를 삽입하는 로직을 보여주고 있습니다. 이런 방식으로 애플리케이션에서 데이터의 유효성을 검증하고 처리함으로써 데이터베이스에 올바른 데이터가 저장되는 것을 보장할 수 있습니다.