개발Story
[XML - db pool 유지]
Spring/xml 2022. 3. 25. 09:56

spring을 사용하다보면 db pool이 끊키는 현상이 발생하고 한다. 그럴땐 context-datasource.xml에 db pool을 만들어주는 자리에 option을 주면 해결이 가능하다. [첫번째 방법은 db pool size를 늘리는 것이다.] bean을 생성하는 자리에 initialSize, maxActive, maxIdle, minIdle, maxWait 설정을 주면 된다. 설명 : [두번쨰 방법은 db에 의미없는 sql을 주기적으로 실행시켜 주는 것이다.] validationQuery, testWhileIdle, timeBetweenEvictionRunsMillis 옵션이다. 1분에 한번씩 select 1 query를 실행시켜주는것이다. oracle일경우 select 1 from dual을..

foreach문 사용하기(list)
Spring/mybatis 2021. 2. 7. 16:37

mybatis에서 vo에 선언된 list를 파라미터로 받을 수 있다. 일단 vo에서 list컬럼을 선언해두어야한다. -VO- private List list; 리스트로 선언해둔다. -XML and id in #{arr} 리스트 컬럼에 if조건을 두고 조건이 성립할 경우 foreach문을 실행한다. foreach문 옵션들- 구분 설명 collection 전달받은 인자값 item 전달받은 인자값을 다른이름으로 대체 open 해당 구문이 시작할 때 close 해당 구문이 끝날 때 index 항목의 인덱스 값을 꺼낼 때 사용할 변수 이름을 지정 separator 구분자. 한번 이상 반복할 때 반복되는 사이에 해당 문을 넣어줌

카멜케이스
Spring/mybatis 2020. 4. 29. 16:54

프로젝트를 하다보면 DB 컬럼은 "_" 로 표기하고 예 ) my_name JAVA에서는 카멜케이스(CAMEL) 예 ) 낙타 표기벗 myName 이렇게 표기한다. 그래서 컬럼을 매칭시킬 경우 mybatis에서 resultMap을 사용하여 컬럼을 표시해주고나 alias를 주어서 컬럼마다 표기를 해주는데 그럴 필요가없다. sql-mapper-config.xml 에 이렇게 설정값을 주면! xml에서 불러오는 컬럼값들이 자동으로 카멜케이스로 변동되어 vo와 매핑된다.ㅋ 개꿀.ㅋ 이런 삽질 안해도됨ㅋ..

Spring 트랜잭션(transaction) 설정.
Spring/transaction 2020. 3. 25. 11:35

프로젝트를 진행하다가 감리분의 지적에 의해 트랜잭션을 처리해야될 부분이 생겼다. 일단 컨트롤러에 있는 코드들을 service 단으로 옮기는것으로부터 작업을 시작했다. controller 소스 -> service 옮기기 service단으로 옮기고 나니 sql부분에 프로시저를 사용하는 mapper가 있다. 프로시저는 자동commit rollback이 안되어서 프로시저 sql구문안에 commit처리를 비지니스 로직단위로 해준다. 그래서 java단에서 아무리 rollback을 해줘봤자 db에서 commit을 한 상태여서 rollback 처리가 되지 않는다. 그래서 프로시저를 service단위로 쪼갯다....그리고 service처리! ------------네 여기까지게 제 상황입니다. 이제부터 트랜잭션 설정하는 ..

useGeneratedKeys 사용법
Spring/mybatis 2020. 2. 9. 15:28

select insert key 처럼 조회한 값이 아닌 db에서 처리해준 값을 서버에서 가져와서 처리해주고 싶을 경우가 있다. 그럴 경우 useGeneratedKeys 사용법을 알아보겠다. ​​ ​​​ 이렇게 굵은 글씨를 설정해주고. keyProperty 와 keyColumn 을 맺칭시켜준다. INSERT INTO ST_USER_AUTHR ( USID , AUTHR_CLCD , CMPTNC_JGRC_CODE , BGNDE , ENDDE , CONFM_USID , CONFM_DT ) VALUES ( #{registerUsid} , #{registerAuthrClcd} , 들어갈 값 , #{registerSigunguCd} , #{registerSidoCd}|| '000' , TO_CHAR(SYSDATE,'..