From e19abaee6dbd11d291162af4388a0f997389576f Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Thu, 18 May 2023 05:52:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0/=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=20=EA=B3=B5=ED=86=B5=20=ED=95=84=EB=93=9C/=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC=20=EC=B6=94=EA=B0=80=20->=20REG=5FDT,=20RGTR,=20MDFCN?= =?UTF-8?q?=5FDT,=20MDFR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cokr/xit/foundation/AbstractEntity.java | 139 ++++++++++++++++++ src/main/java/cokr/xit/foundation/User.java | 2 +- .../xit/foundation/component/AbstractDao.java | 5 + .../foundation/component/AbstractMapper.java | 4 +- .../component/AbstractServiceBean.java | 4 +- 5 files changed, 149 insertions(+), 5 deletions(-) create mode 100644 src/main/java/cokr/xit/foundation/AbstractEntity.java diff --git a/src/main/java/cokr/xit/foundation/AbstractEntity.java b/src/main/java/cokr/xit/foundation/AbstractEntity.java new file mode 100644 index 0000000..81dec31 --- /dev/null +++ b/src/main/java/cokr/xit/foundation/AbstractEntity.java @@ -0,0 +1,139 @@ +package cokr.xit.foundation; + +/**정보를 데이터베이스 테이블에 저장하는 엔티티(Entity) 클래스들이 상속하는 베이스 클래스.
+ * 상속받는 클래스는 다음 항목들에 대한 정의를 갖는다. + * + * 이 중 다음 항목들에 해당하는 컬럼은 필수로 테이블에 정의하고 저장한다. + * + * @author mjkhan + */ +public abstract class AbstractEntity { + private String createdBy; + private String createdAt; + private String modifiedBy; + private String lastModified; + private String removedBy; + private String removedAt; + private String useYN; + + /**등록자 아이디를 반환한다. + * @return 등록자 아이디 + */ + public String getCreatedBy() { + return createdBy; + } + + /**등록자 아이디를 설정한다. + * @param userID 등록자 아이디 + */ + public void setCreatedBy(String userID) { + this.createdBy = userID; + } + + /**등록일시를 반환한다. + * @return 등록일시(yyyyMMddhhmmss) + */ + public String getCreatedAt() { + return createdAt; + } + + /**등록일시를 설정한다. + * @param createAt 등록일시(yyyyMMddhhmmss) + */ + public void setCreatedAt(String createAt) { + this.createdAt = createAt; + } + + /**수정자 아이디를 반환한다. + * @return 수정자 아이디 + */ + public String getModifiedBy() { + return modifiedBy; + } + + /**수정자 아이디를 설정한다. + * @param userID 수정자 아이디 + */ + public void setModifiedBy(String userID) { + this.modifiedBy = userID; + } + + /**수정일시를 반환한다. + * @return 수정일시(yyyyMMddhhmmss) + */ + public String getLastModified() { + return lastModified; + } + + /**수정일시를 설정한다. + * @param lastModified 수정일시(yyyyMMddhhmmss) + */ + public void setLastModified(String lastModified) { + this.lastModified = lastModified; + } + + /**제거(삭제)자 아이디를 반환한다. + * @return 제거(삭제)자 아이디 + */ + public String getRemovedBy() { + return removedBy; + } + + /**제거(삭제)자 아이디를 설정한다. + * @param userID 제거(삭제)자 아이디 + */ + public void setRemovedBy(String userID) { + this.removedBy = userID; + } + + /**제거(삭제)일시를 반환한다. + * @return 제거(삭제)일시(yyyyMMddhhmmss) + */ + public String getRemovedAt() { + return removedAt; + } + + /**제거(삭제)일시를 설정한다. + * @param removedAt 제거(삭제)일시(yyyyMMddhhmmss) + */ + public void setRemovedAt(String removedAt) { + this.removedAt = removedAt; + } + + /**사용여부를 반환한다. + * @return 사용여부 + * + */ + public boolean inUse() { + return "Y".equals(getUseYN()); + } + + /**사용여부를 반환한다. + * @return 사용여부 + * + */ + public String getUseYN() { + return useYN; + } + + /**사용여부를 설정한다. + * @param useYN 사용여부 + * + */ + public void setUseYN(String useYN) { + this.useYN = useYN; + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/foundation/User.java b/src/main/java/cokr/xit/foundation/User.java index 84e1d52..39e880e 100644 --- a/src/main/java/cokr/xit/foundation/User.java +++ b/src/main/java/cokr/xit/foundation/User.java @@ -4,7 +4,7 @@ import java.io.Serializable; /**사용자 정보. */ -public class User implements Serializable { +public class User extends AbstractEntity implements Serializable { private static final long serialVersionUID = 1L; private static final String UNKNOWN = "anonymous"; public static final User unknown = new User().seal(); diff --git a/src/main/java/cokr/xit/foundation/component/AbstractDao.java b/src/main/java/cokr/xit/foundation/component/AbstractDao.java index 59bab3e..0af8d08 100644 --- a/src/main/java/cokr/xit/foundation/component/AbstractDao.java +++ b/src/main/java/cokr/xit/foundation/component/AbstractDao.java @@ -132,6 +132,11 @@ public abstract class AbstractDao extends EgovAbstractMapper { return ApplicationException.get(t); } + /**리스트의 각 row의 필드 이름을 camel case로 변환한다. + * @param 리스트 유형 + * @param list 리스트 + * @return 리스트 + */ protected static >> T underscoredToCamelCase(T list) { if (list.isEmpty()) return list; diff --git a/src/main/java/cokr/xit/foundation/component/AbstractMapper.java b/src/main/java/cokr/xit/foundation/component/AbstractMapper.java index 625669e..ec93220 100644 --- a/src/main/java/cokr/xit/foundation/component/AbstractMapper.java +++ b/src/main/java/cokr/xit/foundation/component/AbstractMapper.java @@ -8,12 +8,12 @@ import cokr.xit.foundation.data.DataObject; * 애플리케이션의 매퍼 인터페이스는 이 인터페이스를 상속받아 정의하고,
* 이름은 (업무객체 이름 || 테이블 이름) + 'Mapper'로 한다. * {@code @Mapper} 어노테이션을 적용하고 카멜 표기법으로 이름을 설정한다. 다음은 그 예다. - *
 package cokr.xit.example.business.dao;
+ * 
 package cokr.xit.example.business.dao;
  * import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
  * {@code @Mapper("tableBMapper")}
  * public interface TableBMapper extends AbstractMapper {
  *    ...
- * }
+ * }
*

매퍼 파일의 작성
* 매퍼 파일은 매퍼 인터페이스가 실행하는 SQL문을 저장한다. *

  • 매퍼 파일의 이름은 매퍼 인터페이스의 이름을 카멜 표기법으로 표시하고, ‘Mapper’를 ‘-mapper‘로 분리한다.
    diff --git a/src/main/java/cokr/xit/foundation/component/AbstractServiceBean.java b/src/main/java/cokr/xit/foundation/component/AbstractServiceBean.java index 5e9b5d3..da06484 100644 --- a/src/main/java/cokr/xit/foundation/component/AbstractServiceBean.java +++ b/src/main/java/cokr/xit/foundation/component/AbstractServiceBean.java @@ -20,12 +20,12 @@ import cokr.xit.foundation.UserInfo; *

    애플리케이션의 서비스 구현체는 이 클래스를 상속받아 정의하고, 이름은 '서비스 인터페이스' + 'ServiceBean'으로 한다.
    * 그리고 @Service 어노테이션을 명시하고, 카멜 표기법으로 표시한 업무 인터페이스의 이름을 지정한다. * 다음은 그 예이다. - *

     package cokr.xit.example.business.service.bean;
    + * 
     package cokr.xit.example.business.service.bean;
      * ...
      * {@code @Service("businessService")}
      * public class BusinessServiceBean extends AbstractServiceBean implements BusinessService {
      *     ...
    - * }
    + * }
    * 정의한 서비스 구현체는 다음과 같이 @Resource 어노테이션으로 이름을 명시해 주입한다. *
     @Resource(name = "businessService")
      * BusinessService businessService;