내가 담당하고 있는 프로젝트에 ip를 사용해서 외부 db로 데이터를 전송하여 문자가 갈수있도록 해달라고 요청받았다.
난 mysql에 들어가서 해당 ip에 대한 권한을 열어주는건지 알았는데 그게아니었다!
개발이 필요했던것! 먼저 나는 전자정부프레임워크, java, mvc패턴개발환경이다.
src\main\resources\egovframework\spring\com\context-datasource.xml
링크로 들어가서 데이터를를 열어줬다!
<bean id="dataSource-mysql2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://ip:포트/데이터베이스 명"/>
<property name="username" value="해당 usrenaem"/>
<property name="password" value="your_password"/>
<property name="maxWait" value="60000"/>
</bean>
위는 내가 vm가상화로 만들었던 서버에 mysql에 유저네임 지정해주고 권한 준다음에 넣어줬다!
권한주는건 쉽다.
GRANT INSERT ON 데이터베이스명.* TO '유저네임'@'개발컴퓨터 아이피' IDENTIFIED BY 'your_password';
명령어를 서버에 입력해주면 된다.
그럼 insert 권한 획득!
2번째
src\main\resources\egovframework\spring\com\context-sqlMap.xml
파일에 들어가서 sms.xml이 있는곳 위치설정해주기
<bean id="sqlMapClient-mysql2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocations">
<list>
<value>classpath:/egovframework/sqlmap/config/${Globals.DbType}/*.xml</value>
</list>
</property>
<property name="dataSource" ref="dataSource-mysql2"/>
<property name="lobHandler" ref="egov.lobHandler"/>
</bean>
src\main\resources\egovframework\spring\com\context-transaction.xml
여기에서 트랜잭션 설정!
<!-- MySQL2 트랜잭션 매니저 -->
<bean id="txManager-mysql2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource-mysql2"/>
</bean>
<!-- MySQL2 트랜잭션 어드바이스 -->
<tx:advice id="txAdvice-mysql2" transaction-manager="txManager-mysql2">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<!-- MySQL2 트랜잭션 어드바이저 -->
<aop:advisor advice-ref="txAdvice-mysql2" pointcut-ref="requiredTx" />
그후에 controller나 vo, dao를 적절하게 수정하면 끝!
하지만 추가 에러가있었다............................
내가쓰는 프로젝트는 ibatis 이다^^ mybatis로 변경되었지만 프로그램이 오래되서.........ㅎㅎ....예전것을 쓰고있다.
sms.SQL.xml에서 쿼리작성이 잘되어있는데. 데이터 전송까지하는데 db에 쌓이지않았다............
그이유는^^ sql.xml 상단에있는 링크문제..ㅋㅋ
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
이것을 아래로 바꿔주니까 해결!
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
원하는 데이터가 잘 들어온다^^
'java' 카테고리의 다른 글
mvc 패턴 구성요소 이해하기 (0) | 2024.07.18 |
---|---|
form에서 받은 값을 controller로 전달하기 (0) | 2023.09.27 |
HackerRank 4단계 (0) | 2023.05.09 |
HackerRank - Java 7 - 3단계 If-Else (0) | 2023.05.04 |
catch TypeError: Cannot read properties of undefined 해결하기 (0) | 2023.04.28 |