2014-12-06 1 views
0

mysql 데이터베이스 테이블에 UUID 토큰을 저장합니다. 내 java 프로그램의 다음 섹션에서, 나는 UUID 값이 이전에 생성이UUID 값을 mysql 데이터베이스에 저장하는 방법

String sql = "SELECT expiray_time FROM recover_password WHERE token = '"+token+"'"; 

token 같은 쿼리를 수행하는 것입니다 필요하고 그것은 mysql 테이블에 저장됩니다.

하지만 내 프로그램을 실행하면 EmptyResultDataAccessException이라는 오류가 발생합니다. UUID 토큰 값이 생성되어 데이터베이스에 삽입 될 때와 동일한 형식이 아니기 때문에이 오류가 발생한다고 생각합니다. 지금은 다른 형태입니다.

내 데이터베이스에 UUID를 text 유형 값으로 저장했습니다.

내 질문

  1. 는 데이터베이스에 text의 유형에 UUID 값을 저장하는 올바른가되어 있습니까?
  2. 생성 된 토큰 값을 데이터베이스의 토큰 값과 비교하는 방법은 무엇입니까?
  3. UUID 값이 데이터베이스에 삽입 될 때 다른 형식으로 해시되거나 암호화됩니까? 감사합니다. 당신의 UUID가 255자를 초과하지 않을 경우

답변

2
  1. 은, 그것은 VARCHAR를 사용하는 것이 가장 바람직합니다.
  2. 문자열 비교를 위해 MySQL의 STRCMP() 함수를 사용하십시오. http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#function_strcmp
+0

데이터베이스에 저장 될 때 다른 형식으로 변환됩니까? – vigamage

+0

UUID를 그대로 삽입하는 경우 일반 텍스트로만 표시됩니다. 암호화하려는 경우 SHA1(), MD5() 등과 같은 내장 된 해시 함수를 사용할 수 있습니다. 전체 참조는 [link] (http://dev.mysql.com/doc)에서 찾을 수 있습니다. /refman/5.5/en/encryption-functions.html) –

+0

아니요, 문제는 숫자와 텍스트로 생성 된 것입니다. 그러나 데이터베이스를 보면 전혀 다릅니다 – vigamage