취업 준비/실전 JPA

4/12 취준 준비

가끔개발 2023. 4. 12. 18:37

오늘 어려웠던 문제 

class Solution {
    public String solution(String my_string, String letter) {
        StringBuilder sb = new StringBuilder(my_string);
        int index;
        while((index = sb.indexOf(letter)) !=-1){
            sb.delete(index, index + letter.length());
        }
        return sb.toString();
}
}

StringBuilder의 "indexOf" 메소드를 이용하여 "letter"가 존재하는 위치를 찾고 "delete 메소드를 이용하여 해당 위치의 "letter"의 길이 만큼 제거 이과정을 "indexOf" 메소드가 -1을 반환할때 까지 반복하여 "letter"를 모두 제거합니다.

 

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
    class Solution {
        public int[] solution(int[] emergency) {
         int[] answer = new int[emergency.length];
                ArrayList<Integer> array=new ArrayList<Integer>();        
                //arraylist를 하나 만듬
                for(int i:emergency) {                                 
                //매개변수로 들어온 int배열을 하나씩 arraylist에 넣음
                        array.add(i);
                    }
                Collections.sort(array, Collections.reverseOrder());     
                //arraylist를 내림차순으로 정렬
                for(int i=0; i<answer.length; i++) {       
                        answer[i]=array.indexOf(emergency[i])+1;          
                        //arraylist에서 emergency배열의 i번째 정수의 인덱스값을 넣음 
                    }
                return answer;
            }

arraylist를 하나 만듬

 

 

 

주의

  • 엔티티 매니저 팩토리는 하나만 생성해서 애플리케시여 전체에서 공유
  • 엔티티 매니저는 쓰레드간에 공유 X(사용하고 버려야함)
  • JPA의 모든데이터 변경은 트랜잭션 안에서 실행
  • JPA

JPQL

  • JPA를 사용하면 엔티티 객체를 중심으로 개발
  • 문제는 검색 쿼리
  • 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색
  • 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능
  • 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검 색 조건이 포함된 SQL이 필요