먼저 현재 DB에 대한 TimeZone을 확인하기 위한 명령어는 다음과 같습니다.
SHOW timezone;
타임존이 한국이 아닐 경우 아래의 명령을 통해 한국으로 변경합니다. !DB_NAME!에 데이터베이스 이름이 들어갑니다.
ALTER DATABASE !DB_NAME! SET timezone = 'Asia/Seoul';
타임존을 변경한 뒤에는 PostgreSQL을 반드시 재시작해야합니다.
공간정보시스템 / 3차원 시각화 / 딥러닝 기반 기술 연구소 @지오서비스(GEOSERVICE)
먼저 현재 DB에 대한 TimeZone을 확인하기 위한 명령어는 다음과 같습니다.
SHOW timezone;
타임존이 한국이 아닐 경우 아래의 명령을 통해 한국으로 변경합니다. !DB_NAME!에 데이터베이스 이름이 들어갑니다.
ALTER DATABASE !DB_NAME! SET timezone = 'Asia/Seoul';
타임존을 변경한 뒤에는 PostgreSQL을 반드시 재시작해야합니다.
이미 완성되어 컴파일까지 되어 배포된 프로그램에 대한 기능 확장을 위해서 Reflection API를 사용할 수 있습니다. 이 글은 이 목적을 위해 일단 필요한 코드를 정리한 글 입니다.
Java에서 어떤 타입에 대한 이름을 문자열로만 알고 있을 때, 그 타입의 인스턴스를 생성하기 위한 코드는 다음과 같습니다.
try { Class<?> clazz = Class.forName("tstConstructor.service.FirstService"); //Class<?> clazz = tstConstructor.service.FirstService.class; Constructor<?> constructor = clazz.getConstructor(String.class); Serviceable instance = (Serviceable)constructor.newInstance("Jack"); instance.run(); } catch (Exception e) { e.printStackTrace(); }
위의 코드에서 FirstService 클래스의 코드는 다음과 같습니다.
package tstConstructor.service; public class FirstService implements Serviceable { private String _name; public FirstService(String name) { this._name = name; } @Override public void run() { System.out.println("Hello, my name is " + this._name); } }
또한 Serviceable 인터페이스의 코드는 다음과 같습니다.
package tstConstructor.service; public interface Serviceable { void run(); }
또한 Java에서 어떤 타입에 대한 이름을 문자열로만 알고 있을 때, 그 타입의 정적 필드값을 얻기 위한 코드는 다음과 같습니다.
try { Class<?> clazz = Class.forName("tstConstructor.service.Gizmo"); //Field field = Gizmo.class.getField("NAME"); Field field = clazz.getField("NAME"); Class<?> fieldType = field.getType(); if(fieldType == String.class){ System.out.println(field.get(null).toString()); } else if(fieldType == double.class){ System.out.println(field.getDouble(null)); } } catch (Exception e) { e.printStackTrace(); }
Gizmo 클래스의 코드는 다음과 같습니다.
package tstConstructor.service; public class Gizmo { public static String NAME = "GIZMO"; }