목록Database (26)
ecsimsw
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 영속성 컨텍스트 : 엔티티를 영구 저장하는 환경이라는 뜻. 엔티티 매니저를 생성할 때, 영속성 콘텍스트가 하나 생성된다. 엔티티 매니저를 통해 영속성 컨텍스트를 관리한다. 엔티티의 생명 주기 1. 비영속 : 객체를 생성, 설정만 하고 영속성 컨텍스트에 넣지 않은 상태 2. 영속 : 영속성 컨텍스트에 저장되어 관리되는 상태 3. 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태 4. 삭제 : 삭제된 상태
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 양방향 매핑 이전 단방향 매핑 member - team의 구조에서 이번에는 team에서 member를 얻고 싶은 경우에는 어떻게 해야할까. Team에 List members를 만들고, member의 team과 매핑하면 된다. Member @Entity public class Member { @Id @GeneratedValue private Long id; @ManyToOne @JoinColumn(name="TEAM_ID") private Team team; } Team @Entity public class Team { @Id @GeneratedValue private Long id; private String n..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 연관 관계 매핑 1. 데이터 중심 모델링 아래 Member와 Team의 구조를 보자. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name= "TEAM_ID") private long teamId; } @Entity public class Team { @Id @GeneratedValue private Long id; } 위 설계처럼 기존의 데이터 중심 모델링으로 멤버에 대한 Team 객체를 얻고자 한다면, 다음처럼 member.TeamId를 뽑고, 엔티티매니저에서 그 teamId에 해당하는 Team 객체를 찾아야할 것이다. ..
PK 필드 권장하는 식별자 전략 (PK만들기) 1. 기본 제약 조건 : null, 유일, 변하면 안된다 2. 자연키는 적절하지 않음. 3. 권장 대체키 : Long 타입 + 대체키 + 키 생성전략 @GeneratedValue(strategy=GerationType.AUTO)
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. 필드와 컬럼 매핑 데이터 스키마 자동 생산 - DDL을 어플리케이션 실행 시점에서 자동으로 생성하도록 할 수 있다. - 테이블 중심 -> 객체 중심 - DB에 맞는 적절한 DDL 생성 - 이렇게 자동으로 생성된 DDL은 개발에서만 사용하는 것이 바람직하다. 운영에서 사용해선 안된다. 사용 방법 - persistence / property에서 hbm2ddl.auto의 value 조정 *DML, DDL, DCL DML : Select, Insert, Update, Delete DDL : Create, Alter, Drop, Rename DCL : Grant, Revoke 매핑 어노테이션 - 필드와 컬럼을 매핑하는데 ..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. EntitiyManagerFactory EntityManagerFactory는 transaction 단위의 업무를 처리할 때 항상 EntityManager를 생성하고 이를 통해 jdbc를 사용한다. 하나만 생성해서 애플리케이션 전체에서 공유하도록 한다. persistence-unit name는 persistence.xml에서 persistence-unit을 설정할 때 지정한다. EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistence-unit name); Entity @Entity @Getter @Setter public class..
"T아카데미 / JPA 프로그래밍 기본기 다지기 - 김영한 " 강좌를 듣고 정리한 글입니다. JPA "객체를 자바 컬렉션을 저장하듯 DB에 저장할 순 없을까" Java Persistence API / ORM을 따른 Java 진영 표준 API ORM Object Relation Mapping 객체는 객체대로 설계하고, 관계형 DB는 관계형대로 설계하고. -> ORM이 중간에서 이 둘을 매핑한다!! 구조 기능 1. Entity 분석 2. Query 생성 3. JDBC API 사용 4. 패러다임 불일치 해결 ( 이를 테면 상속, 연관 관계, 엔티티 관계 ) CRUD C: jpa.persist(member) R: Member member = jpa.find(memberId) U: member.setName("s..
Connection pool 이전에는 db에 엑세스하기 위해 매번 DB connection -> Handling -> DB close을 반복해야했다. 필요한 db 접근이 많아질수록, 이런 과정은 부하를 낳을 것이다. Connection pool은 connection을 일정 개수 미리 만들어 두고, 웹서버가 db에 접근이 필요할 때마다 하나씩 빌리고 반납하는 방식으로 처리하여 위 문제를 해결한다. JSP과 mySql 연동, 커넥션 풀 1. 라이브러리 설치 commons-collections / commons-pool / commons-dbcp 라이브러리를 필요로한다. appache commons에서 다운로드. 2. WebContent / WEB-INF / lib 위에서 설치한 3개의 jar 파일 복사 3...