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 이 실행된다.
유니크 인덱스 혹은 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;
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;
}
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
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
두 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'
* 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'
피드 구독하기:
글 (Atom)