본문 바로가기
JAVASCRIPT & JQUERY

[Java&Javascript] 데이터베이스 숫자 값을 콤마 붙여 가져오고 빼서 내보내는 방법!!

by GoodDayDeveloper 2021. 2. 24.
반응형

(2021년 5월 20일 자바 방법을 추가하였습니다.)

 

안녕하세요. 오늘은 데이터베이스에 있는 숫자데이터를 콤마 붙여서 사용하고 빼내서 다시 데이터베이스에 넣는 방법에 대해 알아보겠습니다. 

데이터베이스에 콤마가 아닌 상태에서 콤마 데이터가 넘어가면 오류가 발생하기 때문에 빈번히 사용됩니다.


아래와 같이 데이터베이스에 숫자값이 있습니다. 이것을 콤마 찍히게 html상에서 보여줘야합니다.

 

HTML

 

input 칸을 만들어줍니다. id값과 name값을 넣어줍니다..

 

<div>
  <input type="text" id="board_price" name="board_price" class="form-control" /> 원
</div>

 

Javascript

 

데이터베이스 콤마 붙여 가져오는 방법과 내보내는 방법을 나눠하겠습니다.


데이터베이스로부터 콤마 붙여 가져오는 방법

 

script

스크립트 안에 getMoneyFormat 함수를 작성합니다. 이 함수안에는 콤마를 붙이는 정규식이 존재합니다.

$(function(){ 안에 삼항연산자를 통해서 board_price안에 빈칸이면 0, 값이 있으면 값을 넣어줘서 기본값 셋팅을 해줍니다. 

그리고 실시간 감시 함수인 "propertychange change paste input" 를 사용하여 선언해주면 자동으로 콤마가 붙어서 작성이 됩니다.

 

<script type="text/javascript">

function getMoneyFormat(sFieldValue) {
sFieldValue = ""+sFieldValue;
var returnValue = "";
var minus = "";
var decimal = "";
if(typeof sFieldValue != "undefined" && sFieldValue != null && sFieldValue != ""){
	if( sFieldValue.indexOf("-") == 0 ) minus = "-";
	var decimalIdx = sFieldValue.indexOf(".");
	if( decimalIdx >=0 ){
		decimal = sFieldValue.substring(decimalIdx);
		sFieldValue = sFieldValue.substring(0,decimalIdx);
	}
		
	sFieldValue = sFieldValue.replace(/\D/g,"");
	for(var i=sFieldValue.length-1;i>=0;i--){
		returnValue = sFieldValue.charAt(i) + returnValue;
		if( i!=0 && returnValue.replace(/\D/g,"").length % 3 == 0 ){
			returnValue = "," + returnValue;
		}
	}
}
return minus + returnValue + decimal;
}


$(function(){


$("#board_price").val((("${boardVO.board_price}" == '') ? "0" : getMoneyFormat("${boardVO.board_price}")));


$("#board_price").on("propertychange change paste input", function() {
	$(this).val(getMoneyFormat($(this).val()));
});

});


</script>

 

java

addComma함수를 만들어주고 return 값을 DecimalFormat을 사용해주면 콤마값이 들어갑니다.

public String addComma(String data) {
 		int result = Integer.parseInt(data);
 		return new java.text.DecimalFormat("###,###,###").format(result);
 	}
 
 
if(!StringUtils.isNullOrEmpty(searchVO.getBoard_price())) {
	searchVO.setBoard_price(addComma(searchVO.getBoard_price()));
}

 

콤마를 때서 데이터베이스로 내보내는 방법

script

이 부분은 간단합니다. 콤마를 빼는 함수를 작성한 다음, 내보낼때 함수에 값을 넣어주면 되는거죠!

 

<script type="text/javascript">

function fnReplace(val) {
	var ret = 0;
	if(typeof val != "undefined" && val != null && val != ""){
		ret = Number(val.replace(/,/gi,''));
	}
	return ret;		
}

$("#board_price").val(fnReplace($("#board_price").val()));

</script>

 

java

이 또한 함수를 별도로 만들어서 replaceAll을 이용하여 정규식으로 콤마를 빼주는 코드를 작성한 다음,

널과 빈칸이 아닐 경우 함수를 적용해주면 됩니다.

public String subtractComma(String data) {
 		return data.replaceAll("\\,", "");
 	}
    


if(!StringUtils.isNullOrEmpty(searchVO.getBoard_price())) {
	searchVO.setBoard_price(subtractComma(searchVO.getBoard_price()));
}

 

그러면 콤마가 제거되어 데이터베이스에 숫자만 값이 들어가게 됩니다. 

스크립트에서 하면 페이지를 새로고침할 경우, 스크립트에서 코드가 이루어지기 때문에

화면상콤마가 때였다 붙였다하는게 보여 거슬릴 수가 있습니다..그래서 저는 자바로 하는 방법을 추천드립니다.

 

반응형

댓글