1. ORACLE DB설치
오늘은 오라클 DB연동 및 SQL 디벨로퍼 세팅 등 간단하게 DB 연동 작업을 할 예정이다.
먼저 아래 URL에서 오라클 19c 버전 부터 받도록 하자.
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
2. SQL Developer 설치
설치 완료 후 SQL Developer 를 다운 받는다.
https://www.oracle.com/tools/downloads/sqldev-downloads.html
이렇게 설치가 완료된 후 2가지 파일을 수정 해줘야한다.
C\app\OOOO\ 해당 경로에서 파일을 검색한다.
3. .ora 파일 수정
- tnsnames.ora
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 본인PC IP로수정)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = 본인PC IP로수정)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
- listener.ora
DEFAULT_SERVICE_LISTENER = XE
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\설치경로\product\18.0.0\dbhomeXE)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\설치경로\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 본인PC IP)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
본인PC IP확인 방법은
cmd 명령어창에서 ipconfig 를 검색하면 IPv4주소에 해당하는 주소가 본인 PC IP이니 참고하자
이렇게 2 파일을 메모장 형식으로 열어 수정한 뒤 저장하고
cmd 명령어 창에서 현재 리스너가 서비스 하고 있는지 확인한다.
lsnrctl services 명령어 창에 입력하여 확인한다.
내가 사용할 SID 는 xe 이고, 현재 잘 서비스 중인걸로 확인된다.
만약 여기서 서비스 하고 있지 않다면 윈도우 메뉴에서 서비스를 검색하여 oracle 관련 리스너를 작동하면 된다.
4. SQL Developer DB연동
이후 SQL Developer를 실행하여 해당 DBMS에 접속을 해보자.
오라클 설치시 SYSTEM, SYS 등 해당 사용자 비밀번호 설정시 사용했던 비밀번호를 위와 같이 입력해준다.
중요한건 세부정보 탭에서 호스트이름에 아까 .ora 파일에서 수정했던 본인 IP 주소를 입력하고 포트 및 SID 를 설정해준다.
아까 cmd 창에서 봤었던 xe 로 서비스중인 SID 를 사용하여 테스트 및 접속을 한다.
아직 테이블을 구상하지 않았으니 잘 연동이 되었는지 기본 쿼리를 날려본다
SELECT SYSDATE FROM DUAL;
금일 날짜로 잘 나온다.
5. 이클립스 jdbc 연동
이제 이클립스에 jdbc 연동을 해야한다.
프로젝트 우클릭 > properties > Java Build Path 에서 jdbc.jar 파일을 add 해준다.
미리 파일은 준비하여야 하는데 아래 사이트에서 받도록 하자.
https://www.oracle.com/database/technologies/jdbc-ucp-122-downloads.html
6. root-context.xml 설정
jdbc.jar 파일 적용 후 spring 폴더 하위에 root-context.xml 을 생성하여 설정해준다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@본인IP:1521:xe"></property>
<property name="username" value="SYSTEM"></property>
<property name="password" value="비밀번호"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath*:mappers/**/*Mapper.xml"></property>
<property name="configLocation" value="classpath:/myBatisConfig.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
<!--@Repository 스캔 -->
<context:component-scan base-package="com.spring.lotto.dao"></context:component-scan>
<context:component-scan base-package="com.spring.lotto.service"></context:component-scan>
</beans>
dataSource 내에 ip / port / sid / 사용자id / 비밀번호 등 연동에 필요한 정보를 넣는다.
Mapper.xml 의 이름으로 생성예정이므로 위와 같이 설정해준다.
7. MVC 패턴 클래스 생성
그리고 MVC 패턴 답게 Model, View, Controller 를 다 만들어 놓자.
메인화면 진입 시 콘솔에 날짜가 나오도록 세팅
단순히 DB가 잘 연동되었는지 확인하기 위해서이다.
각 클래스별 어노테이션을 잘 확인해야한다.
날짜 조회를 사용하기 위한 getDate() 를 설정
밑에 getNumber()는 다음 포스팅에 추가할 내용이니 스킵
DaoImpl 에선 다른점이 @Repository 를 사용하였다.
여기서 잠시 @Service 와 @Repository 를 간략하게 차이점을 설명해본다면
@Service 는 내부로직을 처리하고
@Repository 는 외부 I/O를 담당한다고 생각하면 된다.
DaoImpl 에선 mapper.xml 과 매핑하여 데이터를 입출력 받기 때문에 @Repository 어노테이션을 사용한다.
NAMESPACE 도 일일이 다 적기 힘들기 때문에 상수로 선언하여 간략히 사용.
mapper.xml 에 해당하는 경로를 적어야한다.
XML 에 쿼리를 작성까지 완료한 후 이제 메인화면을 들어가보겠다.
이와 동시에 이클립스 콘솔을 확인하면!
성공적으로 DB연동 및 쿼리까지 타고 결과값을 도출하는걸 볼 수 있다.
다음 포스팅엔 구매횟수를 받아 JSP -> 컨트롤러로 값을 보낸 뒤 그 값을 파라미터로 사용하여
로또 쿼리를 타고 화면에 번호까지 뿌려주는 작업을 포스팅할 예정이다!
'Programming > Spring' 카테고리의 다른 글
스프링으로 웹페이지 만들기 - 6. 카카오오븐 사용하여 UI UX 정의하기 (0) | 2022.02.07 |
---|---|
스프링으로 웹페이지 만들기 - 5. 부트스트랩 무료템플릿 사용하기 (0) | 2022.02.07 |
스프링으로 웹페이지 만들기 - 4. 데이터 주고 받기 (0) | 2022.01.25 |
스프링으로 웹페이지 만들기 - 2. Spring MVC Project 생성 (0) | 2022.01.17 |
스프링으로 웹페이지 만들기 - 1. Spring MVC Project 생성 (0) | 2021.12.20 |