반응형
String strDate = "2022-05-18";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(strDate, formatter);
long ts = Timestamp.valueOf(date.atStartOfDay()).getTime();

 

 

참고자료

https://alklid.tistory.com/990

 

Timestamp to Long OR Long to Timestamp

import java.sql.Timestamp; import java.text.SimpleDateFormat; // Long to Timestamp long currentTime = System.currentTimeMillis(); System.out.println("System.currentTimeMillis() : " + currentTime); SimpleDateFormat sdfCurrent = new SimpleDateFormat("yyyy-MM

alklid.tistory.com

 

반응형
반응형

Mac Address는 랜카드의 물리적 주소를 말하며, PC의 유일한 고유 주소값이다.

16진수로 표현되며, cmd창에서 ipconfig에서 물리적 주소에서 해당 PC의 Mac Address를 확인 할 수 있다.

 

MacAddress를 path 값으로 받아서 암호화 하는 작업 시, 콜론(:)을 path값으로 받을수가 없어서 설정해 놓은 length와 일치 하지 않아 작업이 정상적으로 처리가 되지 않는 문제가 발생했다.

예를 들면, vo.getMacAddress()에 있는 값이 00:15:5D:03:8D:01이 아닌 00155D038D01인 이유로 length가 모자란 것이다.

 

아래와 같이 replaceAll을 통해 가져온 Mac Address에 콜론을 넣기로 하였다.

 

우선 replaceAll()은 대상 문자열을 원하는 문자값으로 모두 변환하는 함수이다.

replaceAll("변환 대상", "변환할 문자열");
vo.getMacAddress().replaceAll("(.{2})", "$1"+':').substring(0,17);

위에서 표현된 정규식을 해석해보자면, 먼저 (.{2}) 의 경우 모든 문자열에 대해 2번씩 끊어줌을 나타낸다.

. : 모든 문자(와일드카드), {} : 반복개수

$1 : 일치하는 1개의 값

 

학원 프로젝트 할 때도 느꼈지만 정규화는 아직 어렵다🥹

 

 

참고자료

https://m.blog.naver.com/kangyh5/221684721675

 

맥어드레스 확인하기(mac address)

맥어드레스는 네트워크 어댑터(랜카드)의 물리적 주소를 말하며, 내 PC의 유일한 고유의 주소이다. 참고...

blog.naver.com

https://itecnote.com/tecnote/java-convert-string-to-macaddress-formate-in-java/

 

Java – Convert String to macAddress Formate in java – iTecNote

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help

itecnote.com

https://sysops.tistory.com/174

 

정규표현식(Regular Expression) 사이트 및 팁

정규식 테스트 사이트 중 가장 많이 사용되는 사이트 1 http://www.regexr.com 정규식 테스트 사이트 중 가장 많이 사용되는 사이트 2 https://regex101.com/ Ruby기반 정규식 테스트 http://rubular.com/ Java기반 정

sysops.tistory.com

 

반응형
반응형

상태값을 바꿀때 VO에 선언해 놓은 Enum 값을 넣으려고 아래와 같이 VO를 구성했는데 아래와 같은 오류가 발생했다.

Parameter value [SUCCESS] did not match expected type [java.lang.String (n/a)]

 

VO

@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "log_data")
public class LogVo {

    public enum STATUS {
        SUCCESS,
        FAILED
    }

    @Id
    @Column(name = "seq")
    private long Seq;

    @Column(name = "employee_no")
    private String employeeNo;

    @Column(name = "update_date")
    private LocalDateTime updateDate = LocalDateTime.now();

    @Column(name ="status")
    private String status;
}

 

문제의 VO를 확인해보면 우선 타입이 안맞다는 부분은 작성했던 VO의 status는 String 이여서 enum 으로 설정한 STATUS 타입으로 변환하여 해결했다.

 

그런데도 에러가 발생하였는데 DB 테이블 STATUS에 빈값이 있었기 때문이다.

enum으로 선언한 컬럼은 enum 값중 하나가 무조건 들어가 있어야한다고 한다.

초반에 테이블값을 UNKNOWN으로 디폴트값을 설정하고 enum에 UNKNOWN 값을 추가했다.

반응형
반응형

기본 개념

- 객체

현실세계에 독립적으로 존재하는 모든 것이다.

 

- 클래스

구현하고자 하는 객체를 만들기 위해 클래스가 필요하다.

여기서 클래스란 각 객체들의 속성(정보, 기능) 등을 담아낸 틀이다.

클래스는 1단계로 추상화 과정을 거친 후 2단계 캡슐화 해준다.

 

추상화 과정

1. 내가 구현하고자 하는 프로그램에서 필요한 객체들을 생각

   예) 학생관리 프로그램 -> "학생"이라는 객체 필요. ex)아이유, 송강, 박민영, ...

2. 그 객체들이 가지고 있는 공통적인 속성, 기능들을 모두 추출

   예) 나이, 이름, 성별, 키, 성적, 학년, 학번, ...

3. 추출한 속성들을 내가 구현할 프로그램에 기준에 맞춰 불필요한 속성을 제거

   예) 발사이즈, 자가용유무, 자가유무, 형제자매, ...

4. 최종적으로 추려진 속성들을 가지고 클래스라는 틀을 만듬

   어떤 자료형으로 어떤 속성을 만들 것인가

 

클래스 구조

public class 클래스이름 {
   //필드부

   //생성자부

   //메소드부
}

 

필드부

- 형태

접근제한자 자료형 필드 이름;

 

- 접근제한자

해당 필드에 접근할 수 있는 범위 제한

클래스 안에서 필드 선언 시 반드시 작성

public > protected > default > private

 

/*Value Object*/

public class Student {	
	public String name;
	public int age;
	public char gender;
}
/*Run*/

public class Run {

	public static void main(String[] args) {
    	//Student 클래스 생성
		//클래스 타입
    	Student hb = new Student(); //Student클래스 틀로 학생 객체를 생성한것
		
		//Student 클래스에 있는 속성으로 직접 값을 대입하자
		hb.name = "김일등";
		hb.age = 20;
		hb.gender = '여';
		
		Student sh = new Student()
		sh.name = "최이등";
		sh.age = 28;
		sh.gender = '남';
		
		Student me = new Student();
		me.name = "이삼등";
		me.age = 23;
		me.gender = '여';
		
		System.out.println(hb.name + "님의 정보");
		System.out.println(hb.name);
		System.out.println(hb.age);
		System.out.println(hb.gender);
		
		System.out.println(sh.name + "님의 정보");
		System.out.println(sh.name);
		System.out.println(sh.age);
		System.out.println(sh.gender);
		
		System.out.println(me.name + "님의 정보");
		System.out.println(me.name);
		System.out.println(me.age);
		System.out.println(me.gender);
	}
}

출력값

김일등님의 정보
김일등
20

최이등님의 정보
최이등
28

이삼등님의 정보
이삼등
23

반응형

+ Recent posts