Java - URL 이미지 파일로 저장하기


String imgUrl = "http://www.a.com/test_image.jpg";  // 이미지 URL
String imgFilePath = "test_image.jpg";              // 저장할 파일명 (경로 포함)
String imgFormat = "jpg";                         // 저장할 이미지 포맷. jpg, gif 등

getImageFromUrl(imgUrl, imgFilePath, imgFormat);






/**
 * Image URL to File
 */
public void getImageFromUrl(String imgUrl, String imgFilePath, String imgFormat)
{
        try
        {
            // Image 가져오기
            BufferedImage image = ImageIO.read(new URL(imgUrl));
                       
            // Image 저장할 파일
            File imgFile = new File(imgFilePath);
           
            // Image 저장
            ImageIO.write(image, imgFormat, imgFile);
        }
        catch (Exception e)
        {
        }
}

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

MySql - 시간차 계산하기

*** TIMESTAMPDIFF ***
두 DATETIME 간의 시간차이를 초/분/시/일 등의 단위로 반환.

ex) 초 단위
SELECT TIMESTAMPDIFF(SECOND, NOW(), DATE_ADD(NOW(), INTERVAL 1 DAY));
==> 86400




ex) 분 단위
SELECT TIMESTAMPDIFF(MINUTE, NOW(), DATE_ADD(NOW(), INTERVAL 1 DAY));
==> 1440


ex) 시 단위
SELECT TIMESTAMPDIFF(HOUR, NOW(), DATE_ADD(NOW(), INTERVAL 1 DAY));
==> 24



ex) 일 단위
SELECT TIMESTAMPDIFF(DAY, NOW(), DATE_ADD(NOW(), INTERVAL 1 DAY));
==> 1

MySql - 문자열 자르기 (SUBSTRING)

* SUBSTRING 혹은 SUBSTR 을 사용

* SUBSTRING(문자열, 시작인덱스), SUBSTR(문자열, 시작인덱스)
시작 인덱스(1부터)부터 끝까지 문자열을 잘라서 반환.
ex) 
SELECT SUBSTRING('abcdef', 1);  => 'abcdef'
SELECT SUBSTR('abcdef', 2);     => 'bcdef'

* SUBSTRING(문자열, 시작인덱스, 길이), SUBSTR(문자열, 시작인덱스, 길이)
시작 인덱스(1부터)부터 길이만큼 문자열을 잘라서 반환.
ex) 
SELECT SUBSTRING('abcdef', 1, 3);  => 'abc'
SELECT SUBSTR('abcdef', 2, 3);     => 'bcd'