MySql - INSERT ~ ON DUPLICATE KEY UPDATE 사용하기

*** 설명 ***
유니크 인덱스 혹은 PRIMARY KEY 값이 중복되어 인서트하지 못하는 경우 업데이트를 수행한다. 오라클의 MERGE INTO와 비슷한 기능.


*** 예제 ***
INSERT INTO TEST_TABLE (A, B, C)
  VALUES (1, 2, 3)
  ON DUPLICATE KEY UPDATE B = 4, C = 5;
=> A 컬럼이  PRIMARY KEY.
   TEST_TABLE에 A 컬럼이 1 인 행이 없으면 INSERT INTO TEST_TABLE (A, B, C) VALUES (1, 2, 3) 이, 있으면 UPDATE B = 4, C = 5 이 실행된다.


스프링 프로퍼티 사용하기

*** 설명 ***
Value 어노테이션을 사용하여 프로퍼티 값을 가져올 수 있다.
값에 따라서 String, boolean 등의 형식을 지정할 수 있다.

***예제 ***
@Value("${prop.name1}")
private String propName1;

@Value("${prop.name2}")
private boolean propName2;


Java - SHA1 샘플

* byte 데이터를 입력받아 SHA1로 변환한 결과 문자열을 리턴한다.


public static String convertSHA1(byte[] srcBytes)
    {
        try
        {
            MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
            messageDigest.update(srcBytes);
            byte digestBytes[] = messageDigest.digest();
           
            return String.format("%0" + (2 * digestBytes.length) +  "x", new BigInteger(1, digestBytes));
        }
        catch(Exception e)
        {
        }
       
        return null;
    }

MySql - 문자열 길이 (LENGTH)

*** 문자열 길이를 구하는 함수 ***
LENGTH           : 바이트 수
CHAR_LENGTH     : 글자 수
BIT_LENGTH tprk   : 비트(1바이트는 8비트) 수


*** 예제 ***
SELECT LENGTH('대한민국'), CHAR_LENGTH('대한민국'), BIT_LENGTH('대한민국');
=>             12                    4                          96       

SELECT LENGTH('English'), CHAR_LENGTH('English'), BIT_LENGTH('English');
=>              7                   7                      56