코딩하렴

SPRING-mybatis-Oracle 연결하기 -2

by 으렴



지난 게시글에서는 jsp파일을 만들고


home에서 컨트롤러 매핑을 거쳐


새로운 jsp페이지를 데려오는 과정을 만들어 보았다.


이번 게시글에는 새로운 jsp페이지에 DB에 저장된 값을 전달하는 것을 해 볼 것이다.


Oracle 쿼리쓰기


DB에 저장된 값을 가져오기 위해서는 일단 DB에 무언가가 저장이 되어 있어야 할 것이다.


그럼 Oracle Developer를 키고 생성되어있는 사용자와 비밀번호를 입력한 후 쿼리입력창으로 가자.




1
2
3
4
5
6
create table member (
id varchar2(20primary key not null,
name varchar2(20not null
);
 
insert into member values ('ryeom','you');
cs



새로운 테이블을 만들고 그 안에 값을 넣어주는 작업이다.


Insert할 때에는 꼭 내가 한 것 대로 할 필요 없는거 다들 알고 있을것이라고 생각한다.


자기가 넣고싶은 것 아무거나 넣으면 된다.


그리고 나서 테이블의 모든 값을 출력해주는 쿼리를 입력하면



1
select * from member;
cs






이렇게 깔끔하게 값이 나온다.




여기까지 완료 했다면 Oracle Developer에서 해야 할 일은 완-뇨-!




다음으로는 Spring에서 해야 할 작업이다.




지난 게시글에서 만든 java package의 DTO에 다음과 같은 class를 만들어 준다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MemberDTO {
 
    private String id;
    private String name;
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
}
cs




Oracle에 만들어놓은 table안의 column명을 맞추어 주어야 한다.


이 게시글에서는 id랑 이름만 만들었으니까 이 정도만 만들어 준다.







이제는 생성한 프로젝트로 가서 작업을 해준다.




그럼 pom.xml로 간다.



<dependencies>태그를 기준으로 태그 상단에는


1
2
3
4
5
6
7
8
9
10
11
12
    <!--dependencies 위에 설정 -->
    <repositories>
        <repository>
            <id>oracle</id>
            <name>ORACLE JDBC Repository</name>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
        <repository>
               <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
    </repositories>
cs


이 코드를 추가 해 주고 안쪽에는 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        <!-- mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.3</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
        </dependency>
        <!-- spring jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <!-- ojdbc6 -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
cs


위와 같은 코드를 추가 해 준다.


지난 게시글에서 설명 했듯이 pom.xml은 maven이 필요한 라이브러리를 서버에서 다운 받아서 작업중인 프로젝트에 넣어주는 역할을 하고 있다.



메이븐 저장소 : https://mvnrepository.com/ 이곳에 가서 필요한 라이브러리를 검색하여


dependency 코드를 복붙하면 사용 할 수 있다.



여기서 까먹은 게 있는데 java의 버전을 맞춰주어야 겠당..



1
2
3
4
5
6
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
        <org.aspectj-version>1.8.10</org.aspectj-version>
        <org.slf4j-version>1.7.25</org.slf4j-version>
    </properties>
cs


pom.xml 상단에 보면 java의 버전과 스프링 버전을 적는 곳이 있는데 이곳의


자바 버전은 1.8


spring은 4.3.2.RELEASE 로 해준다.




위의 xml코드를 적어주는 이유는


프로젝트에 이제부터 jdbc와 mybatis, oracle을 사용 할 것이라고 가르쳐주는 것과 같다고 생각하면 된다.


이렇게 해 주면 이제부터 프로젝트에서 오라클과 mybatis를 사용 할 준비가 되었다.





다음은 root-context.xml로 간다.


파일 경로는 webapp/WEB-INF/spring 안에 있다.





켜보면 걍 빈즈만 있고 아무것도 없을 것이다.


이제 왼쪽 하단의 Namespaces를 열어 보자.




beans만 체크 되어있는 것을 오른 편에 체크된 것들 처럼 체크해주자.



그렇게 하고 source로 다시가면 코드가





요래요래 많이 늘어나 있을 것이다.



이건 어떻게 생각하면 전역으로 import 해주는 것과 비슷하게 생각하면 된다.


프로젝트 전반적으로 나는 뭘쓸껀지 가르쳐준다고 해야하나?




이렇게 해주면 이제 DB를 연결 해야 한다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        id="dataSource">
        <property value="oracle.jdbc.driver.OracleDriver" name="driverClassName" />
        <property value="jdbc:oracle:thin:@localhost:1521:xe"
            name="url" />
        <property value="User_name" name="username" /><!-- DB User -->
        <property value="Pwd" name="password" /><!-- DB User Password -->
    </bean>
 
    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="SqlSessionFactory">
        <property name="dataSource" ref="dataSource" />
        <property value="classpath:mybatis-config.xml" name="configLocation" />
        <property value="classpath:/mappers/*Mapper.xml" name="mapperLocations" />
    </bean>
    
    <bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession" destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory" ref="SqlSessionFactory" />
    </bean>
cs



<beans> 태그 안에 위의 코드를 추가 해 준다.




위의 코트를 해석하자면 일단 DB를 연결 시킬때 사용하는 Oracle Driver를 사용하고 아이디와 비밀번호를 가르쳐준다.


그리고 sql session factory라는 친구를 사용 할 건데 이친구의 역할은 아래와 같다.






@Repository는 데이터베이스에 직접 접근 할 수 없다.


mybatis라는 친구는 sql session이라는 아이디를 통해서 데이터베이스와의 연결을 열었다 닫았다 한다.


sql session은 mapper.xml에 접근을 하게 되는데 mapper.xml에 namespace와 쿼리문이 적힌 id를 불러주면 자기가 알아서 데이터 베이스에 접근해서 쿼리를 작성하고 작성된 결과물을 반환해 준다.





다음 게시글에서는 이 sqlSession을 통해서 Database에 있는 값을 추출 해 볼 것이다.


이번 게시글은 여기까징 투비 컨티뉴

'Web > SPRING' 카테고리의 다른 글

SpringBoot 자동 설정  (0) 2019.03.30
SPRING-mybatis-Oracle 연결하기 -3  (0) 2018.12.21
SPRING-mybatis-Oracle 연결하기 -1  (0) 2018.12.19
SPRING 한글 처리하기  (0) 2018.12.18
SPRING MVC PROJECT 구조 이해하기  (0) 2018.12.17

사이트의 정보

코딩하렴

으렴

활동하기