JAVA(247)
-
[Servlet][MyBatis] Mapper 설정 #2 typeHandlers, Handling Enums, objectFactory, plugins, mappers
학습목표 1. typeHandlers를 설정하고 생성하는 방법에 대해서 학습 2. enumTypeHandler와 enumOrdinalTypeHandler를 설정하고 생성하는 방법에 대해서 학습 3. objectFactory를 생성하고 설정하는 방법에 대해서 학습 4. plugins 인터페이스를 구현하고 설정하는 방법에 대해서 학습 1. typeHandlers typeHandlers의 역할은 무엇인가? typeHandler의 역할은 mybatis가 PreparedStatement에 파라미터를 설정하고 ResultSet에서 값을 가져올 때마다 적절한 자바 타입으로 변환해주는 역할을 수행합니다. 아래의 링크는 디폴트 TypeHandlers의 표입니다. https://mybatis.org/mybatis-3/..
2022.02.23 -
[Servlet][MyBatis] Mapper 설정 #1 properties, settings, typeAliases
학습목표 1. properties 설정 방법을 학습 2. settings 설정 방법을 학습 3. typeAliases 설정 방법을 학습 1. properties properties는 외부 파일에 작성하여 불러올 수도 있고 properties 엘리먼트를 직접 생성하고 하위 엘리먼트에 둘수도 있습니다. config.properties (외부 파일에 작성) driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@localhost:1521/ORCLPDB username=LIBRARY password=LIBRARY me=Lee 외부파일인 config.properties 파일을 불러오기 '${username}'과 같이 사용하여 필요한 속성을 불러올 수 있습니다...
2022.02.23 -
[Java][Constructor][Pattern] Builder Pattern
학습목표 1. 객체를 생성할때 문제에 대해서 학습 (인스턴스화) 2. 인스턴스화의 문제를 해결하기 위한 여러 패턴에 대해서 학습 3. Builder Pattern에 대해서 학습 1. 인스턴스화(Instantiate) 아래와 같이 Student 클래스 타입의 객체를 생성한다고 가정합니다. public class Student { private int stdno;// 학번 private String name;// 이름 private String dept;// 학과 private int age;// 나이 public Student(int stdno, String name, String dept, int age) { this.stdno = stdno; this.name = name; this.dept = dep..
2022.02.15 -
[Servlet][MyBatis] MyBatis3 시작하기
1. 설치 https://github.com/mybatis/mybatis-3/releases Releases · mybatis/mybatis-3 MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub. github.com mybatis-3.5.9.zip 다운로드 mybatis-3.5.9.jar 파일을 프로젝트 lib 폴더에 저장 Project Libraries에 mybatis-3.5.9.jar 추가 Project 오른쪽 버튼 클릭->Build Path->Configure Build Path Libraries -> Add JARs.. -> WEB-INF/l..
2022.02.15 -
[Java][Thread Pool] 쓰레드 풀(Thread Pool) #1 쓰레드 풀이란 무엇인가?
학습목표 1. Thread Pool이 무엇인지 학습 2. 쓰레드풀 생성 및 실행 예제 학습 1. 쓰레드 풀(Thread Pool)가 필요하게 된 배경 데이터베이스나 웹 서버와 같은 서버 프로그램은 반복적으로 여러 클라이언트로부터 요청을 받아서 요청에 맞는 서비스를 제공합니다. 예를 들어 웹 서버는 클라이언트로부터 요청을 받으면 쓰레드를 새롭게 생성하여 서비스를 제공합니다. 하지만 문제점은 클라이언트로부터 요청이 올때마다 새롭게 쓰레드를 생성하고 해제하는 것은 많은 시간과 시스템 자원을 소모합니다. 활성화된 쓰레드는 시스템 자원을 소모하기 대문에 JVM은 너무 많은 쓰레드를 생성하게 되고 메모리 부족을 초래할 것입니다. 따라서 위와 같이 너무 많은 쓰레드 생성 문제를 해결하기 위해서 쓰레드 풀 방법이 존재..
2022.02.09 -
[Servlet&JSP] Entity, DAO, DTO, VO 구분
1. Entity 클래스란 무엇인가? Entity 클래스는 실제 데이터베이스의 테이블과 1:1로 매핑되는 클래스입니다. Entity 클래스는 데이터베이스의 테이블 내에 존재하는 컬럼(column)만을 필드멤버로 가져야 합니다. Entity 클래스는 상속을 받거나 구현체여서는 안되며, 테이블내에 존재하지 않는 컬럼을 가져도 안됩니다. 1.1 Entity와 DTO의 분리 이유 Entity 클래스와 DTO 클래스를 분리해서 관리해야 하는 이유는 DB Layer와 View Layer 사이의 역할을 분리하기 위해서이다. 여기서 DB Layer에서 수행하는 일은 실제 데이터베이스 안에서 INSERT, UPDATE, DELETE문과 같은 테이블의 데이터 레코드에 영향을 미치는 연산을 수행합니다. View Layer에..
2022.01.14