전체 글 55

JPQL - Criteria 기초 (조회, 집합, 정렬)

Criteria 쿼리는 JPQL을 자바 코드로 작성하도록 도와주는 빌더 클래스 API이다. Criteria를 사용하면 문자가 아닌 코드로 JPQL을 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성할 수 있는 장점이 있다.   Criteria 기초Criteria API는 javax.persistence.criteria 패키지에 있다. 아래는 단순한 Criteria 쿼리이다.//JPQL: select m from Member mCriteriaBuilder cb = em.getCriteriaBuilder(); // 1. Criteria 쿼리 빌더// 2. Criteria 생성, 반환 타입 지정CriteriaQuery cq = cb.createQuery(..

JPA 2024.05.28

indexOf(), substring() 알고리즘

간단한 문장 속 단어 알고리즘을 풀어보겠습니다.문장 속 가장 긴 단어를 출력하는 프로그램이고, 가장 길이가 긴 단어가 여러개일 경우 문장 속에서 가장 앞쪽에 위치한 단어를 답으로 합니다. 각 단어는 공백으로 구분됩니다. 입력 예시it is time to go 출력 예시time  package com.example.testproject;import java.util.Scanner;class Main{ public String solution(String str){ String answer = ""; int m = Integer.MIN_VALUE, pos; //가장 작은 값으로 초기화 /* 1. split을 쓰는 방법 String[] s = str.split(" ")..

JAVA 2024.05.20

알고리즘 - 문자열

문자열에서 특정 문자의 갯수를 구하는 간단한 알고리즘을 구현 해보겠다.package com.example.testproject;import java.util.Scanner;class Main{ public int solution(String str, char c){ int answer=0; str = str.toUpperCase(); c = Character.toUpperCase(c); for(int i=0; i for문은 둘 중 아무거나 사용해도된다. 주석으로 되어있는 for문은 향상된 for문이다. 결과는 아래와 같다.  ※ 정리 ※String, Char 의 차이→ String은 문자열이고 Char은 문자(한글자)이다.static 메소드는 인스턴..

JAVA 2024.05.20

JPQL - Named 쿼리 - 정적 쿼리

JPQL 쿼리는 크게 정적 쿼리와 동적 쿼리로 나눌 수 있다.- 동적 쿼리: em.createQuery(“select…”) 처럼 jpql을 문자로 완성해서 직접 넘기는 것. 런타임에 특정 조건에 따라 jpql을 동적으로 구성할 수 있다.- 정적 쿼리: 미리 정의한 쿼리에 이름을 부여해서 필요할 때 사용할 수 있는데 이것을 Named 쿼리라 한다. Named 쿼리는 한 번 정의하면 변경할 수 없는 정적인 쿼리다.Named 쿼리는 애플리케이션 로딩 시점에 JPQL 문법을 체크하고 미리 파싱해둔다. 따라서 오류를 빨리 확인할 수 있고, 사용하는 시점에는 파싱된 결과를 재사용하므로 성능상 이점도 있다. 그리고 Named 쿼리는 변하지 않는 정적 SQL이 생성되므로 데이터베이스의 조회 성능 최적화에도 도움이 된다..

JPA 2024.05.14