전체 글
-
java - 12 ) 자바 API 클래스Java 2020. 8. 3. 15:24
Object 클래스 java.lang 패키지 - java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. java.lang.Object 클래스 - java.lang 패키지 중에서도 가장 많이 사용되는 클래스는 바로 Object 클래스이다. Object 클래스는 모든 자바 클래스의 최고 조상 클래스이다. 따라서 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다. toString() 메소드 - toString() 메소드는 해당 인스턴스에 대한 정보를 문자열로 반환한다. 이때 반환되는 문자열은 클래스 이름과 함께 구분자로 ..
-
java - 11 ) 다형성Java 2020. 8. 1. 21:51
다형성의 개념 다형성(polymorphism) 이란 ? - 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있다. 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 참조 변수의 다형성 - 자바에서는 다형성을 위해 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하고 있다. 이때 참조 변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스의 멤버 개수보다 같거나 적어야 참조할 수 있다. class Parent { ... } class Child extends Paren..
-
JPA - 객체지향 쿼리 언어 (JPQL) - 2Java 2020. 7. 31. 17:20
JPQL - 경로 표현식 - .(점)을 찍어 객체 그래프를 탐색하는 것 select m.username // 상태필드 from Member m join m.team t // 단일 값 연관 필드 join m.orders o // 컬렉션 값 연관 필드 where t.name = '팀A' 경로 표현식 용어 정리 - 상태 필드 (state field) : 단순히 값을 저장하기 위한 필드 ex) m.username - 연관 필드 (association field) : 연관관계를 위한 필드 - 단일 값 연관 필드 : @ManyToOne, @OneToOne, 대상이 엔티티 (ex. m.team) - 컬렉션 값 연관 필드 : @OneToMany, @ManyToMany, 대상이 컬렉션 (ex. m.orders) 경로 표..
-
JPA - 8. 객체지향 쿼리 언어 (JPQL) - 1Java 2020. 7. 29. 14:16
객체 지향 쿼리 언어 소개 - JPQL - JPA Criteria - QueryDSL - 네이티브 SQL - JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 과 함께 사용 JPQL 소개 - 가장 단순한 조회 방법 - EntityManager.find() - 객체 그래프 탐색 (a.getB().getC()) - 나이가 18살 이상인 회원을 모두 검색하고 싶다면 ? JPQL - JPA를 사용하면 엔티티 객체를 중심으로 개발 - 문제는 검색 개발 - 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 - 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능 - 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요 - JPA는 SQL을..
-
JOINDatabase 2020. 7. 28. 20:46
조인 - 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것이다. 따라서 조인은 테이블로서 저장되거나, 그 자체를 이용할 수 있는 결과 셋을 만들어 낸다. JOIN은 2개의 테이블에서 각각의 공통값을 이용함으로써 필드를 조합하는 수단이 된다. ANSI 표준 SQL은 네가지 유형의 JOIN을 규정한다. 1. INNER JOIN 2. OUTER JOIN 3. LEFT JOIN 4. RIGHT JOIN 교차 조인 - CROSS JOIN 절은 조인되는 두 테이블에서 곱집합을 반환한다. 즉, 두 번째 테이블부터 각 행과 첫 번째 테이블에서 각 행이 한번씩 결합된 열을 만든 것이다. ex) m행을 가진 테이블과 n행을 가진 테이블이 교차 조인되면 m * n 개의 행을 생성한다. // 명시적..
-
JPA - 7. 값 타입Java 2020. 7. 27. 19:53
기본값 타입 JPA의 데이터 타입 분류 - 엔티티 타입 - @Entity로 정의하는 객체 - 데이터가 변해도 식별자로 지속해서 추적 가능 - 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 - 값 타입 - int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 - 식별자가 없고 값만 있으므로 변경시 추적 불가 - 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류 - 기본값 타입 - 자바 기본 타입 (int, double) - 래퍼 클래스 (Integer, Long) - String - 임베디드 타입 (embedded type, 복합 값 타입) - 컬렉션 값 타입 (collection value type) 기본값 타입 - 예) String ..
-
JPA - 2. 엔티티 매핑Java 2020. 7. 26. 14:32
객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. - JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 - 기본 생성자 필수 (파라미터가 없는 public 또는 protected) - final 클래스 , enum, interface, inner 클래스 사용 X - 저장할 필드에 final 사용 X @Entity 속성 name - JPA에서 사용할 엔티티 이름 지정 - default -> 클래스 이름 - 같은 클래스 이름이 없다면, 가급적 기본값을 사용한다. @Table 속성 - catalog : 데이터베이스 catalog 매핑 - schema : 데이터베이스 schema 매핑 - uniqueConstraints (DDL) : DDL 생성 시..
-
JPA - 1. 영속성 관리 - 내부 동작 방식Java 2020. 7. 26. 14:03
JPA에서 가장 중요한 2가지 1. 객체와 관계형 데이터베이스 매핑하기 2. 영속성 컨텍스트 영속성 컨텍스트 - JPA를 이해하는데 가장 중요한 언어 - "엔티티를 영구 저장하는 환경" 이라는 뜻 - EntityManager.persist(entity); 엔티티 매니저 ? 영속성 컨텍스트 ? - 영속성 컨텍스트는 논리적인 개념 - 눈에 보이지 않는다. - 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 - 비영속 (new/ transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 - 영속 (managed) 영속성 컨텍스트에 관리되는 상태 - 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 - 삭제 (removed) 삭제된 상태 영속성 컨텍스트의 이점 - 1..