본문 바로가기

학원

(182)
[Spring] 환경설정 먼저 Spring 프레임워크를 설치해보자 기존에 사용중인 이클립스에 STS 플러그인을 설치해 사용할 것이다. 이클립스 상단 메뉴 [Help] >> [Marketplace] restrart 해주면 완료 환경설정을 해보자 프로젝트를 생성한다 참고로 Spring Starter Project는 Spring boot 용이다 되는지 확인하려면 HomeController.java 파일을 실행시켜서 controller/ 뒤 주소 모두 지우고 이렇게 뜨면 완료 Project Facets를 설정해주자 프로젝트 우클릭 >> Properties >> Project Facets 검색 home.jsp 파일에서 utf-8로 설정해주면 한글이 깨지지 않고 잘 출력된다 maven 설정하기 pom.xml 파일을 수정해준다 Maven M..
[Spring] Spring 프레임워크란? Spring 프레임워크 Spring 프레임워크는 자바 기반의 오픈 소스 애플리케이션 프레임워크로서, 기업급 응용 프로그램 개발을 위해 사용되는 강력하고 유연한 프레임워크이다. Spring은 경량 컨테이너, 의존성 주입(Dependency Injection), 관점 지향 프로그래밍(AOP), 트랜잭션 관리 등 다양한 기능을 제공하여 개발자가 애플리케이션을 더 쉽고 효율적으로 개발할 수 있도록 도와준다.
[MyBatis] 인터페이스 기반의 매퍼 파일만 사용해 매퍼 등록하기 mybatis 프레임워크에서는 Interface 기반의 매퍼 파일만 사용하여 매퍼를 등록하는 것도 가능하다. 매퍼를 등록하기 위해서는 인터페이스의 추상메소드에 매퍼 어노테이션을 사용하여 SQL 명령을 등록하면 된다. 추상메소드에 등록된 SELECT 명령은 기본적으로 검색행을 자동 매핑하여 객체로 제공한다. → 자동 매핑 기능을 사용하여 검색행을 객체로 생성하기 위해 검색행의 컬럼명과 객체를 생성할 클래스의 필드명을 동일하게 작성해야 한다. → 검색행의 컬럼명과 클래스의 필드명이 하나도 같지 않은 경우 객체 대신 NULL을 제공한다. @Results : 검색행을 객체로 생성하여 제공하기 위한 매핑 정보를 설정하는 어노테이션 @Results은 XML 기반의 매퍼 파일에서 resultMap 엘리먼트와 유사한 ..
[MyBatis] 동적 SQL(Dynamic SQL) 동적 SQL(Dynamic SQL) 동적 SQL은 전달값에 따라 엘리먼트에 다른 SQL 명령을 등록하는 기능이다. 즉, SQL문을 동적으로 생성하는 기능을 말한다. 동적 SQL은 OGNL(Object Graph Navigation Language) 표현식을 사용하여 구현할 수 있다. 예제를 보자 이름을 전달받지 못한 경우 MYHEWON 테이블에 저장된 모든 회원정보를 검색하여 검색결과를 객체로 제공하고 이름을 전달받은 경우 MYHEWON 테이블에 저장된 해당 이름의 회원정보를 검색하여 검색결과를 객체로 제공하는 엘리먼트를 작성해보자. 동적 SQL 기능을 사용하여 전달값에 따라 SQL 명령을 다르게 등록되어 사용되도록 설정할 것이다. xml 매퍼 파일 [MyHewonMapper.xml] select hew..
[Mybatis] cache 엘리먼트 cache 엘리먼트 cache는 SELECT 명령의 검색결과(Java 객체)를 임시 메모리(Cache Memory)에 저장하여 빠른 검색결과를 제공하기 위한 엘리먼트 이다. chche를 활성화하기 위해서는 SQL 매핑 파일에 한줄을 추가하면 된다. cache 엘리먼트를 사용하면 가독성이 증가한다는 장점이 있다. select 결과를 임시 메모리에 저장해놓고, 재실행하면 DB 서버에 접속해 정보를 가져오는 것이 아니라 임시 메모리에서 정보를 가져온다. INSERT, UPDATE, DELETE 명령이 실행되면 임시 메모리에 저장된 검색결과는 자동으로 초기화된다. 검색결과를 저장하는 객체는 반드시 객체 직렬화 클래스로 작성해야한다. XML 기반의 매퍼 파일에서 cache 엘리먼트를 사용한 경우 SELECT 명령..
[Mybatis] 전달값 표현식 / bind 엘리먼트 전달값을 전달할 때 표현식이 두가지가 존재한다. #{변수명|필드명|맵키} → ['전달값'] 으로 전달되어 전달값을 SQL 명령에서 문자값으로 사용된다. ${변수명|필드명|맵키} → [전달값] 으로 전달되어 전달값을 SQL 명령에서 부분 명령으로 사용된다. 하지만 $ 표현식은 InSQL 공격에 취약하므로 사용하는 것을 권장하지는 않는다. 예제를 보자. 검색대상과 검색단어를 전달받아 HYHEWON 테이블에 저장된 회원정보를 검색대상(컬럼명)에 검색단어(비교값)가 저장된 회원정보를 검색하여, 검색결과를 객체로 제공하는 엘리먼트를 선언해보자. (맵객체를 이용할 것이다) xml 매퍼 전달값을 SQL 명령에서 부분 명령으로 사용하기 위해 $ 표현식을 사용한다. [MyhewonMapper.xml] select hew..
[MyBatis] 매퍼에 등록된 SQL 명령에 필요한 값 전달하기 / Map 객체 이용하기 매퍼에 등록된 SQL 명령에 필요한 값을 전달하는 방법에 대해 알아보자 전달값은 SQL 명령에서 #{변수명|필드명|맵키} 형식으로 표현하여 사용한다. 1. XML 기반의 매퍼 파일에서 SQL 명령이 등록된 엘리먼트의 parameterType 속성값으로 Java 자료형(별칭)을 설정하여 값을 전달받아 SQL 명령에서 사용할 수 있다. 단일값을 전달받기 위해서는 parameterType 속성에 원시형(PrimitiveType)을 사용할 수 있다. (원시형 대신 Wrapper 클래스 사용 가능) 또는 Stirng 클래스를 속성값으로 설정한다. - SQL 명령에서는 #{변수명} 형식으로 전달값을 사용할 수 있다. 다수값을 전달받기 위해서는 parameterType 속성에 JavaBean(DTO 클래스)를 속성값..
[Mybatis] discriminator 엘리먼트 [MYHEWON 테이블] 생성 create table myhewon(hewon_id varchar2(50) primary key, hewon_name varchar2(50) , hewon_phone varchar2(20), hewon_email varchar2(100), hewon_status number(1)); MYHEWON 테이블 : 회원정보를 저장하기 위한 테이블 [MyHewon] DTO 클래스 선언 공개범위에 어떤 값이 저장되어있느냐에 따라 사용자에게 공개되는 정보가 달라지게 만들어 볼것이다. package xyz.itwill.dto; /* 이름 널? 유형 ------------ -------- ------------- HEWON_ID NOT NULL VARCHAR2(50) - 아이디 HEWON..