티스토리 뷰

* 개요

하이버네이트 이용,DB 접속시 다음 URL 사용


jdbc.databaseurl=jdbc:mysql://localhost:3306/130514cidogir?useUnicode=true&characterEncoding=UTF-8&autoReconnection=true&useSSL=false



useUnicode, characterEncoding, autoReconnection, useSSL 등을 선언 하고 있는데

실제로 동작하지 않는 문제




* 환경

eclipse

Spring 5

hibernate 3





* 원인

프로퍼티 간의 구분자를 & 가 아닌 & 로 쓴게 문제였음.



XML 에서 url 쓸 경우 & 를 그대로 쓸 수 없고 & 를 사용하는 것이 맞음.



하지만 나는 jdbc.properties 파일을 사용하고


  

<context:property-placeholder

location="classpath:com/cidog/irs/jdbc.properties" />


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

...

<property name="url" value="${jdbc.databaseurl}" />

...

</bean>



xml 안에서 위와 같이 해당 파일을 가져다 쓰고 있었음. 



- properties 파일에서 가져올때는 XML 에 맞게 & 가 &amp; 로 바뀌게 됨.


그럼에도 불구하고 나는 properties 파일 안에서


...?unicode=true&amp;characterEncoding= ...


형식으로 쓰고 있었고 결과적으로 첫번째 프로퍼티 외에는 모두 잘못 입력되게 됨.


(아마 세미콜론 의해서 그냥 종결됐을수도..)




* 해결

jdbc.properties 내에서 URL 의  &amp; 를 &로 변경함. 





* 참고 : 선언한 프로퍼티가 동작하지 않고 있단 사실은 다음 문제때문에 발견함.


http://dogcowking.tistory.com/209


그 전까지는 몰랐음..


해당 속성이 MySQL 내에서 제대로 선언되었는지 조회하는 방법은 찾지 못했음.

(show variables 는  my.cnf 조회용)





* 참고 2 : autoReconnect 등의 실행을 위해 

hibernateProperties 에 hibernate.connection.autoReconnect 선언했지만 동작하지 않음


hibernate.connection.useSSL 도 마찬가지...



* 참고 3

프로퍼티 선언시 값이 틀리는 경우 오류를 발생시키지만

( ex : useSSL 에는 true/false 가능한데 abc 넣다면 오류 ) 


애초에 잘못된 key 를 넣은 경우는 오류가 없다

useSSLXYZ=true 라고 선언한다고 오류 없음

'SW개발 > Database' 카테고리의 다른 글

mysql 쿼리 로그  (0) 2018.10.24
group by 논리 연산  (0) 2018.10.24
mysql autoReconnect  (0) 2018.10.03
Error Code: 3510. Tablespace XXX doesn't exist.  (0) 2018.09.18
Table XXXX is marked as crashed and last (automatic?) repair failed  (0) 2018.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함