TIL - 20250727

juni·2025년 7월 27일

TIL

목록 보기
76/316

0727 학습

✅ MyBatis Mapper 구조 이해

  • @Mapper 인터페이스 + XML Mapper 분리 구조
  • MyBatis 설정 파일에서 경로 지정
mybatis:
  mapper-locations: classpath:mappers/**/*.xml
  configuration:
    map-underscore-to-camel-case: true

✅ Pet CRUD 프로젝트

📦 Entity 클래스

public class Pet {
  private Long id;
  private String petName;
  private int petAge;
  private boolean injection;
}

📂 Mapper 인터페이스

@Mapper
public interface PetMapper {
  boolean save(Pet pet);
  Pet findById(Long id);
  List<Pet> findAll();
  boolean update(Pet pet);
  boolean deleteById(Long id);
  int petCount();
}

📄 XML 매핑 예시

<insert id="save">
  INSERT INTO tbl_pet (pet_name, pet_age, injection)
  VALUES (#{petName}, #{petAge}, #{injection})
</insert>

✅ SQL 조인 (JOIN)

  • INNER JOIN, OUTER JOIN, 다중 조인
  • Oracle 외부조인: (+)

예제: 게시물과 댓글 조인

SELECT P.POST_ID, P.CONTENT, C.COMMENT_TEXT
FROM POSTS P
INNER JOIN COMMENTS C ON P.POST_ID = C.POST_ID;

예제: 사용자 - 게시물 - 댓글 조인

SELECT
  P.POST_ID,
  U.USERNAME,
  C.COMMENT_TEXT
FROM POSTS P
INNER JOIN USERS U ON P.USER_ID = U.USER_ID
INNER JOIN COMMENTS C ON P.POST_ID = C.POST_ID;

✅ 요약

  • MyBatis를 통한 Mapper 구조 설계 능력 향상
  • XML Mapper를 통한 SQL 분리 및 유지 보수 용이성 경험
  • 다양한 SQL JOIN 문법과 실습을 통해 관계형 데이터베이스 설계 이해도 증가

0개의 댓글