Whiteship's Note


database.properties 모음

모하니?/Coding : 2009. 7. 3. 19:34


외울 수가 없어서 항상 이전에 만들었던 프로젝트들을 뒤적거리는데.... 그게 귀찮아서 한 곳에 모아둡니다.

HSQL

db.driver=org.hsqldb.jdbcDriver
db.url=jdbc:hsqldb:mem:springsprout
db.username=sa
db.password=
hibernate.dialect=org.hibernate.dialect.HSQLDialect

PostgreSQL

db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost/springsprout
db.username=springsprout
db.password=springsprout
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

MySQL

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost/springsprout?autoReconnect=true&characterEncoding=euckr
db.username=springsprout
db.password=springsprout
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

오라클이 없군요. Derby는 패스 합니다. 비추에요. 대충 이 셋 중에서 골라 쓸 듯. HSQL은 테스트 용이고, 실제 DB 용으로 둘 중 하나.. 혹은 오라클 쓰시면 될 듯.




top

  1. Favicon of https://helols.tistory.com BlogIcon is윤군 2009.07.04 00:30 신고 PERM. MOD/DEL REPLY

    오라클용!
    jdbc.driverClassName=oracle.jdbc.OracleDriver
    jdbc.url=jdbc:oracle:thin:@localhost:1521:springsprout
    jdbc.username=springsprout
    jdbc.password=springsprout

    훔냥.. 2주가 정신없이 지나 버렸네요 ;;;ㅋ
    간만에 여유를 찾아 구글 리더를 보니.. 엄청 밀려 있네;;ㅋ
    다시 정신 차려서 봄싹에 다시 전념을 ㅋㅋ
    낼 스터디때 봅시다!

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2009.07.04 11:38 PERM MOD/DEL

    오우 썡큐!!

Write a comment.


하이버네이트, 스프링 MVC에서 enum 사용하기 3

카테고리 없음 : 2009. 7. 3. 18:53


1. Character 값을 DB에 저장하는 enum도 지원하도록 구현했고..
2. UserType 생성을 좀 더 간편화 했습니다.

public enum FamillyCate implements PersistentEnum {

    FATHER('f', "부"), MOTHER('m', "모"), BROTHER('b', "형제"), SISTER('s', "자매");
   
    private final Character value;
    private final String descr;
   
    private FamillyCate(Character value, String descr) {
        this.value = value;
        this.descr = descr;
    }
   
    public Character getValue() {
        return value;
    }
    public String getDescr() {
        return descr;
    }
...
}

이렇게.. Character 값을 DB에 저장할 enum을 사용할 수 있습니다. 이 enum에 대한 UserType 생성은 다음과 같습니다.

public class FamillyCateType extends GenericEnumUserType<FamillyCate>{
}

이 enum에 대한 PropertyEditor는?

binder.registerCustomEditor(FamillyCate.class, new GenericEnumPropertyEditor<FamillyCate>(FamillyCate.class));

캬,.. enum에 대한 UserType과 PE를 전부 코드 한 줄로.. 끝낼 수 있습니다. GenericEnumUserType와 GenericEnumPropertyEditor 코드는 비공개입니다. 영원히~

자 그럼 오늘은 이만 하고,, 다음 번엔 enum 목록을 가져올 때 순서를 정해서 가져오는 방법을 마련해보도록 하겠습니다.

ps: 오랜만에 dm 서버나 돌려봐야겠네요. 방명록에 누가 요청하셔서;;
top

Write a comment.


하이버네이트, 스프링 MVC에서 enum 사용하기 2

모하니?/Coding : 2009. 7. 3. 16:37


어제에 이어 오늘도 물고 늘어진다. 이번에 해결한 문제는, DB에 저장할 값을 int 타입 뿐만이 아니라 String 타입을 사용해도 무방하도록 코드를 수정했다.

public enum UserCate implements PersistentEnum {
   
    ADMIN("admina", "관리자"), STAFF("staff", "직원"), SUPP("supp", "협력업체");
   
    private final String value;
    private final String descr;
   
    private UserCate(String value, String descr) {
        this.value = value;
        this.descr = descr;
    }

    public String getValue() {
        return value;
    }
    public String getDescr() {
        return descr;
    }
   
...

}

이건 DB에 저장할 값으로 String 값을 사용할 enum 이고..

public enum CodeCate implements PersistentEnum {

    COLOR(10, "색상"), SIZE(20, "사이즈"), PAYTERM(30, "지불조건"), SHIPVIA(40, "운송방식");
   
    private final Integer value;
    private final String descr;
   
    private CodeCate(Integer value, String descr) {
        this.value = value;
        this.descr = descr;
    }
   
    public int getValue() {
        return value;
    }
    public String getDescr() {
        return descr;
    }

...

}

이건 DB에 저장할 값으로 int 값을 사용할 enum이다.

하이버네이트가 필요로 하는 UserType을 만들어 보자.

public class CodeCateType extends GenericEnumUserType<CodeCate>{

    public CodeCateType() {
        super(CodeCate.class);
    }
   
}

public class UserCateType extends GenericEnumUserType<UserCate>{

    public UserCateType() {
        super(UserCate.class);
    }
   
}

끝이다. 도메인 객체 타입에 설정해보자. 구현에 필요한 코드만 파란색으로 강조를 했다. 생성자 만드는 부분까지 없앨 수 있을 것 같다. 3차 구현에서 해보자.

Code.java

    @Column
    @Type(type="koma.domain.usertype.CodeCateType")
    CodeCate codeCate;

User.java

    @Column
    @Type(type="koma.domain.usertype.UserCateType")
    UserCate userCate;

자.. 이러면 하이버네이트가 CodeCate는 Integet SQL 타입 컬럼을 만들어 주고 UserCate는 String SQL 타입(varchar)를 만들어 줄 것이다.

스프링 MVC에서 바인딩 할 때 사용할 PropertyEditor는 어떨까? 한 줄 씩이다.

        binder.registerCustomEditor(CodeCate.class, new GenericEnumPropertyEditor<CodeCate>(CodeCate.class));
        binder.registerCustomEditor(UserCate.class, new GenericEnumPropertyEditor<UserCate>(UserCate.class));

끝인가?? 글쎄.. 모르곘다. Charater를 추가하는 것도 별 문제 없을 듯 하다. 해보자. 이러다가 모든 타입을 지원해야 하는건 아니겠지?? Char까지만 해보자. 여기서도 생성자에 클래스를 주고 있는데 3차에서는 저 코드를 없앨 수 있게 구현해보자.

자.. 하이버, 스프링에서 자바 enum 사용 간편화 3차 구현 ㄱㄱㅆ
top

Write a comment.