본문 바로가기

Java

Spring에서 Json으로의 입출력 정리 이번에 프로젝트를 진행하면서 Spring에서 사용하는 Jackson Json 라이브러리를 조금 디테일하게 이용해야 하는 상황이 생겨서 이에 대한 내용을 정리하고자 한다.일단 Json과 관련되어 작업의 내용은.. Java 객체에 저장된 값을 Json 형태로 변환하여 Request Body에 실어서 보내야 한다(이때 String 형 변수가 아닌 다른 형(ex : int 형)을 String 형태(쌍따옴표로 감싼 형태 : "123")로 보내야 한다.Java 객체에 저장된 값을 Json 형태로 변환하여 보낼때 선별적으로 보낼수 있어야 한다. (무슨뜻이냐면 Json으로 보낼때 모든 필드를 다 사용하는것이 아니라 특정 필드는 제외해서 사용할 수 있어야...) Request의 Body로 온 Json 내용을 Java 객.. 더보기
autoMappingBehavior 와 mapUnderscoreToCamelCase 속성의 차이 마이바티스 환경 설정 파일에 정의된 구성 요소 가운데 작동 방식을 결정할 때 사용되는 구성 요소가 있다. 구성 요소에 사용 가능한 속성을 사용하면, 사용자가 원하는 방향으로 마이바티스 작동 방식을 지정할 수 있다. 이러한 속성 중 autoMappingBehavior 속성과 mapUnderscoreToCamelCase 속성이 있다. autoMappingBehavior 속성은 조회된 결과를 컬럼 명과 일치하는 자바 프로퍼티 사이에 자동 매핑 설정할지 여부를 지정한다. 기본 설정은 활성(true) 상태이다. 그리고 mapUnderscoreToCamelCase 속성은 언더바(_)로 구분되는 데이터베이스 컬럼 명과 낙타 표기 형식을 따른 자바 프로퍼티를 자동 매핑할지 여부를 지정한다. 기본 설정은 비활성(fals.. 더보기
Singleton Pattern (싱글턴 패턴) * Singleton Pattern (싱글턴 패턴) 싱글턴 패턴은 해당 클래스의 인스턴스가 오직 하나만 만들어진다. 어디서나 그 인스턴스에 접근할 수 있도록 한다. 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만들면 된다. * 용도 스레드 풀 , 캐시 , 대화상자 , 사용자 설정 , 커넥션 풀 , 디바이스 드라이버 등 객체가 전체 프로그램에서 오직 하나만 생성되어야 하는 경우 * 전역 변수로 static으로 선언해서 사용하면 되지 않을까? 만약 전역 변수로 객체를 생성한다면 어플리케이션이 실행 될 때 객체가 생성 될 것이다. 그러나 그 객체가 자원을 많이 차지 한다면 사용도 하기 전에, 괜한 자원만 차지하게 된다. * 고전적인 싱글턴 패턴 구현법 아래 방식의 코드는 다중 스레드를 사용할 때 각 스.. 더보기
마이바티스에서 동적 쿼리를 생성하기 사용되는 형식은 아래와 같다. * 조건식이 참인 경우에 이 곳에 기술된 내용을 조건절에 추가. test 속성 값으로 조건식이 기술되는데 OGNL 표현식도 가능하다. 사용자들은 일반적으로 알려지고 자주 사용되는 OGNL 표현식 외에 보다 실험적인 OGNL 표현식을 사용하지 않는 것 같다. 예를 들어 test="value != null" 정도인 것 같다. 하지만 눈을 조금만 돌리면 아래와 같은 표현식도 가능하다는 것을 알 수 있다. * 파라미터 값이 1, 2, 3 인 경우 이 곳에 기술된 내용을 조건절에 추가. 또한 '=' : gte '==' : eq '!=' : neq 더보기
마이바티스는 동적 쿼리문 생성에 사용되는 <if /> 구성 요소를 제공... 마이바티스는 동적 쿼리문 생성에 사용되는 구성 요소를 제공합니다. 구성 요소는 인자로 전달된 파라미터 값과 기준 값을 비교하여 참인 경우에 구성 요소 사이의 조건절을 추가합니다. 식(항식)은 test 속성에 정의됩니다. 식(항식)에는 OGNL 표현식을 사용할 수 있으며, 크게 기본 자료형 비교, 참조 자료형 비교, 그리고 문자열 비교에 사용됩니다. 사용되는 예를 살펴보면, 아래와 같습니다. 1. 기본 자료형 비교 1) 프로퍼티 속성 값과 기준 값이 동일한 경우. 2) 프로퍼티 속성 값과 기준 값이 동일하지 않는 경우. 3) 프로퍼티 속성 값이 기준 값 보다 큰 경우. 4) 프로퍼티 속성 값이 기준 값 보다 크거나 같은 경우. 5) 프로퍼티 속성 값이 기준 값 보다 작은 경우. (' 더보기
자바빈(javaBean) 의 값을 보다 쉽게 확인하는 util 1. 자바빈 생성 public class BoardBean { private String name; private String title; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } 2. 확인 public class BeanTest { public static void main(String[] args) { BoardBean board = new BoardBean(); board.setName(.. 더보기
Java 날짜 연산 팁!! [ 날짜 연산법 ] @이해 및 유틸 - 시스템 시간에 대한 이해 - 날짜 계산 종합 유틸리티 @응용팁 - 시스템의 밀리초 구하기.(국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각) // 밀리초 단위(*1000은 1초), 음수이면 이전 시각 long time = System.currentTimeMillis ( ); System.out.println ( time.toString ( ) ); @몇분 후의 시간 및 날짜 가져오기 Date now=new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); Calendar cal = Calendar.getInstance(); String today =.. 더보기
마이바티스와 아이바티스 설정 비교 1. DTD 규칙 정의 ◆ 설절 파일의 DTD @ ibatis @ mybatis ◆ 매퍼 XML의 DTD @ ibatis @ mybatis 2. 설정 파일 변환 규칙 ◆ 최상위 엘리먼트 @ ibatis @ mybatis ◆ settings 엘리먼트 @ ibatis @ mybatis ◆ transactionManager 엘리먼트와 dataSource 엘리먼트 @ ibatis @ mybatis ◆ mapper 설정 @ ibatis @ mybatis 3. 매퍼 XML 변환 규칙 ◆ XML 엘리먼트 @ ibatis @ mybatis ◆ 중첩 결과 매핑 설정 @ ibatis ..... @ mybatis ..... ◆ 파라미터 매핑 처리 구문 @ ibatis parameterMap @ mybatis paramete.. 더보기
[javaModel, sqlMap]Generator 및 table 엘리먼트에서 설정 가능한 프로퍼티 1. javaModelGenerator Properties Description constructorBased 클래스의 전체 필드를 가진 생성자를 만들지 설정한다. 이 프로퍼티를 사용하면 각 필드에 대해 setter 메소드보다는 생성자를 사용하게 처리한다. 단, 이 프로퍼티는 마이바티스를 위한 옵션으로 아이바티스에서는 무시한다. 선택할 수 있는 값은 true, false 두 가지 값 중 하나이며, [디폴트 값은 false이다.] enableSubPackages 대상 테이블의 스키마 이름을 하위 패키지로 사용할지에 대한 옵션이다. 예를 들어 테이블명이 mytable이고 스키마를 myschema로 가정하자. targetPackage 속성을 madnix로 설정하고 이 프로퍼티를 true로 설정하면 생성된 파일.. 더보기
SqlBuilder 의 중요 메소드 Method Description BEGIN() / RESET() 마이바티스 구문 빌더는 생성할 SQL을 스레드로컬에 저장한다. BEGIN() 메소드와 RESET() 메서드는 스레드로컬의 상태를 초기화하고 새로운 구문을 추가하기 위해 준비한다. BEGIN() 메소드는 새로운 구문을 추가할 때 호출하고 RESET() 메소드는 실행 중간에 구문을 초기화할 때 호출한다. SELECT(String) SELECT를 시작하거나 추가한다. 한 번 이상 호출할 수 있고 파리미터는 SELECT 뒤에 추가한다. 파라미터는 컬럼과 컬럼 별칭의 목록이고 SELECT 메소드를 호출할 때마다 쉼표를 자동으로 붙여준다. 컬럼이 5개라면 컬럼별로 호출해도 되고 컬럼 5개를 모두 명시해서 한 번만 호출해도 된다. SELECT_DIST.. 더보기