Back-End24 Object : StringBuilder,StringBuffer 담긴 문자의 길이를 X라고 하고 바꾸려는 문자의 길이를 n이라고 할 때, 값을 바꾸기 위해 아래와 같이 String 의 길이를 늘린다면 시간복잡도는 O(Xn^2)가 된다.String joinWords(String[] words){ String sentence = ""; for(String w:words){ sentence = sentence + w; } return sentence;} 위 코드에서 sentence에 한 글자를 추가하기 위해서 길이인 X만큼 읽기를 반복한 후 더해야 하기 때문이다.이 경우에 StringBuilder 클래스를 사용하면 된다. StringBuilder는 배열을 생성하고 배열공간에 단순히 추가하다가, 배열공간이 부족하면 배열을 늘리기 때문에 매번 X만큼 읽.. 2025. 5. 25. 쿼리 메서드, @Query Spring Data JPA의 쿼리 기능은 아래와 같은 방법을 제공합니다. 쿼리 메서드 : 메서드의 이름 자체가 쿼리의 구문으로 처리되는 기능 @Query : SQL과 유사하게 엔티티 클래스의 정보를 이용해서 쿼리를 작성하는 기능 Querydsl 등의 동적쿼리 처리 기능 쿼리메서드 메서드의 이름 자체가 query 문이 되는 기능입니다. 간단한 쿼리를 조회할 때 사용하면 좋습니다. 아래는 쿼리메서드 명명 방법입니다. docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation Spring Data JPA - Reference Documentation Example 109. Using @Transacti.. 2021. 5. 12. JPA Paging(Page, Pageable, PageRequest, Sort) Paging에서 주로 사용되는 객체 및 인터페이스는 아래와 같다. 주요 객체 Page : 페이지 정보를 담게 되는 인터페이스 Pageable : 페이지 처리에 필요한 정보를 담게 되는 인터페이스 관계 및 사용 PageRequest에 의해 Pageable에 페이징 정보가 담겨 객체화 된다. Pageable이 JpaRepository가 상속된 인터페이스의 메서드에 파라미터로 전달된다. 2번의 메서드의 return 으로 Page가 전달 된다. 전달된 Page에 담겨진 Page 정보를 바탕으로 로직을 처리하면 된다. PageRequest의 메서드 of(int page, int size) : 0부터 시작하는 페이지 번호와 개수. 정렬이 지정되지 않음 of(int page, int size, Sort sort) :.. 2021. 5. 12. JpaRepository 일반적인 CRUD가 필요한 경우 CrudRepository를 사용해도 되지만, 특별한 경우가 아니라면 JpaRepository를 선택하는 것이 무난하다. 사용방법 public interface MemoRepository extends JpaRepository { } 너무나도 간단하다. 사용하려는 Repository Class에 JpaRepository 인터페이스를 구현하는 것으로 생성이 끝난다. Spring Data JPA가 자동으로 해당 인터페이스에 맞는 코드를 생성해준다. JpaRepository를 사용할 때는 엔티티의 ㅏ입정보와 @Id의 타입을 지정해줘야 한다.(JpaRepository) 메서드 Insert 작업 : save(엔티티 객체) select 작업 : findById(키 타입), getOn.. 2021. 5. 12. 엔티티 클래스 크게 두 종류의 코드로 JPA 개발이 가능합니다. JPA 객체에 해당하는 엔터티 클래스 엔터티 객체를 관리하는 기능을 가진 Repository 엔티티 클래스 @Entity @Table(name = "tbl_memo") @ToString @Getter @Builder @AllArgsConstructor @NoArgsConstructor public class Memo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long mno; @Column(length = 200, nullable = false) private String memoText; } @Entity 해당 클래스가 엔티티를 위한 클래스이며, 해당 클래스의 인스턴스들이 JPA.. 2021. 5. 12. File I/O : FileInputStream, BufferedReader 이전 포스팅에서 쓰기를 해봤으니 읽기를 해보려고 한다. import java.io.FileInputStream; import java.io.IOException; public class FileRead { public static void main(String[] args) throws IOException { byte[] b = new byte[1024]; FileInputStream input = new FileInputStream("c:/out.txt"); input.read(b); System.out.println(new String(b)); input.close(); } } 1024byte 단위로 읽어오게 되는데, InputStream에 b를 저장했다가 출력하는 방식이다. 다만 정확한 길이를 모.. 2021. 4. 2. 이전 1 2 3 4 다음