본문 바로가기

JAVA개발

[JAVA 개발] 랜덤값으로 쿠폰번호생성하기

컨트롤러에서 랜덤값을 원하는 갯수 및 자릿수 만큼 출력하는 함수를 생성해보도록 하겠습니다.

@RequestMapping("/couponnum")
 public void couponnum(){
  
  //실행시 ???개 쿠폰 생성
  int couponSize = 20;

  final char[] possibleCharacters =
    {'1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F',
     'G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V',
     'W','X','Y','Z'};
  
  final int possibleCharacterCount = possibleCharacters.length;
  String[] arr = new String[couponSize];
  Random rnd = new Random();
  int currentIndex = 0;
  int i = 0;
  while (currentIndex < couponSize) {
   StringBuffer buf = new StringBuffer(16);
   //i는 8자리의 랜덤값을 의미
   for (i= 8; i > 0; i--) {
    buf.append(possibleCharacters[rnd.nextInt(possibleCharacterCount)]);
   }
   String couponnum = buf.toString();
   System.out.println("couponnum==>"+couponnum);   
   arr[currentIndex] = couponnum;
   currentIndex++;
  }
 }

소스를 기재하여 줍니다.

저는 /couponnum 주소로 이동하면 랜덤쿠폰 출력을 처리 하도록 만들었습니다.

return 값이 없어 페이지는 404에러가 발생합니다.

couponSize를 20으로 주었습니다. 해당 변수는 쿠폰의 갯수를 의미하며 쿠폰 난수 20개를 생성한다는 의미입니다.

그리고 i는 쿠폰번호 영문자숫자조합 8자리로 값을 출력하겠다는 의미로 생각하시면 될거 같네요. 

 서버 실행후 확인한결과 페이지는 404 에러가 발생하고 콘솔창에 쿠폰번호 20개가 찍히는것을 확인할수 있습니다.

System.out.println으로 출력한 부분입니다.

해당 쿠폰값을 바로 디비에 저장하실려면 저 소스에서 약간의 수정만 하시면 가능하겠죠?

정말 간단한 소스 입니다.

감사합니다^^