본문 바로가기
728x90

개발공부 개발새발/DB21

JPA) 엔티티매핑(객체와 테이블, 필드와 컬럼, 기본 키) 엔티티 매핑! 객체와 테이블 매핑 @Entity , @Table 필드와 컬럼 @Column 기본 키 @Id 연관관계 매핑 @ManyToOne, @JoinColumn 객체와 테이블 매핑? @Entity가 붙은 클래스는 JPA가 관리한다, 엔티티라고 부른다 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 - 기본 생성자 필수 - final, enum, interface, inner 클래스 사용 불가 - 저장할 필드에 final 사용 불가(수정이 안대자낭) @Entity는 기본값이 클래스 이름 그대로, @Entity(name="")도 가능하긴 함 Entity name은 JPA에서 얘를 관리할 때 쓸 이름 @Table 엔티티와 매핑할 테이블명을 지정한다 데이터베이스 스키마 자동 생성 애플리케이션 .. 2022. 11. 24.
JPA) CRUD, 영속성 컨텍스트, 플러시, 준영속상태 JPA와 CRUD 저장 jpa.persist(member) 조회 Member member = jpa.find(memberId) 수정 member.setName("변경이름") 삭제 jpa.remove(member) EntityManagerFactory는? 하나만 생성하고, 애플리케이션 전체에서 공유한다 EntityManager는? 쓰레드간의 공유는 X, 사용하고 버려야 한다 *** JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다 *** package hellojpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; i.. 2022. 11. 24.
MyBatis) MyBatis로 이용 가능한 동적 쿼리 MyBatis의 동적 쿼리 1) , 중복 되는 공통 쿼리를 정의한다 sql로 정의한 공통 쿼리를 포함시킨다(붙여넣기) 예) SELECT no, title, content, id, view_cnt, comment_cnt, reg_date FROM board ------- WHERE no = #{no} 2) 여러개가 조건에 맞을 수도 있을 경우, if문 이용 (왜? if에 맞으면 다 적용되기 때문) SELECT count(*) FROM board WHERE true AND (title, LIKE concat('%', #{keyword}, '%') OR content LIKE concat('%', #{keyword}, '%')) AND title LIKE concat('%', #{keyword}, '%') A.. 2022. 11. 23.
728x90