[Mybatis] 반영 자동 검증(Validation) 개념괴 예제
MyBatis는 반영 자동 검증(Validation)을 직접적으로 지원하지는 않습니다. 그러나 애플리케이션에서 데이터베이스에 데이터를 저장하기 전에 데이터의 유효성을 검증하고 처리하는 방식을 구현할 수 있습니다. 이를 통해 데이터베이스에 잘못된 데이터가 저장되는 것을 방지하거나 제어할 수 있습니다.
예제: 반영 자동 검증
- DTO 클래스 작성: 데이터 유효성을 검증하기 위한 DTO 클래스를 작성합니다.
public class Book {
private Long id;
private String title;
private String author;
// ... Getters and setters
}`
- 검증 로직 추가: 애플리케이션 레이어에서 데이터 유효성을 검증하는 로직을 추가합니다.
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);
}
}`
- 애플리케이션에서 호출: 데이터 유효성 검증이 완료된 후에 데이터를 삽입하는 메서드를 호출합니다.
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
클래스 내부에서 데이터 유효성 검증을 수행한 후, 유효한 데이터인 경우에만 데이터를 삽입하는 로직을 보여주고 있습니다. 이런 방식으로 애플리케이션에서 데이터의 유효성을 검증하고 처리함으로써 데이터베이스에 올바른 데이터가 저장되는 것을 보장할 수 있습니다.