본문 바로가기
Web & Mobile/Spring

Lecture 76 - Spring(6) Model2 게시판을 Spring으로, 전자정부프레임워크 설정법, 전자정부프레임워크 모바일

by Bennyziio 2019. 7. 5.
반응형
* Hardcoding(jsp 페이지만 가지고 짜는거)

* MVC model2
* model1

        => 프로그램 제작

1. 기존 프로젝트(Dynamic Web Project)
        => 변환

        1. 라이브러리 추가
        2. 설정

2. Maven Spring Project
        1. 소스 이전 작업
        2. Annotation 처리(X)

=> 동일

기존 프로젝트를 Spring으로 변환해보자 (Model2Ex02)
* 모델2는 URL 방식

이전시 설정 확인을 하는 방법
1. Build Path
2. tomcat(Targeted Runtimes)
3. 데이터베이스 실행 상태

context.xml 확인(데이터베이스 연동구문)

프로젝트명 바꾸는 법

위 루트가 서로 맞는지 확인

프로젝트를 Ex02로 복사해보자

보면 경로가 틀리다. 그래서 에러가 뜸

저장하고 서블릿 실행하면

Bodel2Ex01을 SpringModel2Ex01로 복사하고 톰캣 module가서 경로 설정 잡아주자

1. 라이브러리 옮기기

servlet.BoardController.java는 불필요하니 삭제하자

2. 스프링에서 만든 web.xml을 WEB-INF에 옮겨주자.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>MVCEx</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 한글 인코딩 필터 -->
  <filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>utf-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>*.do</url-pattern>
  </filter-mapping>
  
  <servlet>
  	<servlet-name>dispatcher</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>
  			/WEB-INF/servlet-context.xml
  		</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>dispatcher</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

3. servlet-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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">

	<bean id="/board/list.do" class="model2.ListAction"/>
	<bean id="/board/write.do" class="model2.WriteAction"/>
	<bean id="/board/write_ok.do" class="model2.WriteOkAction"/>
	<bean id="/board/view.do" class="model2.ViewAction"/>
	<bean id="/board/delete.do" class="model2.DeleteAction"/>
	<bean id="/board/delete_ok.do" class="model2.DeleteOkAction"/>
	<bean id="/board/modify.do" class="model2.ModifyAction"/>
	<bean id="/board/modify_ok.do" class="model2.ModifyOkAction"/>

	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/model2/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

4. model2 클래스 파일들을 Controller 인터페이스를 이용하여 ModelAndView로 수정해주자.  이때 자동완성 기능을 사용하면 빠르다(IDE를 사용하는 강력한 이유)

SpringModel2Ex01.src.model2.ListAction

package model2;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class ListAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		BoardDAO dao = new BoardDAO();
		ArrayList<BoardTO> lists = dao.boardList();
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_list1");
		modelAndView.addObject("lists", lists);
		
		return modelAndView;
	}
}

SpringModel2Ex01.src.model2.WriteAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class WriteAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("WriteAciton 호출");
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_write1");
		
		return modelAndView;
	}
}

SpringModel2Ex01.src.model2.WriteOkAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class WriteOkAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		String subject = arg0.getParameter("subject");
		String writer = arg0.getParameter("writer");
		String mail = arg0.getParameter("mail1") + "@" + arg0.getParameter("mail2");
		String password = arg0.getParameter("password");
		String content = arg0.getParameter("content");

		String wip = arg0.getRemoteAddr();

		BoardTO to = new BoardTO();
		to.setSubject(subject);
		to.setWriter(writer);
		to.setMail(mail);
		to.setPassword(password);
		to.setContent(content);
		to.setWip(wip);
		
		BoardDAO dao = new BoardDAO();
		int flag = dao.boardWriteOk(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_write1_ok");
		modelAndView.addObject("flag", flag);
		
		return modelAndView;
	}
}

SpringModel2Ex01.src.model2.ViewAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class ViewAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		String seq = arg0.getParameter("seq");
		
		BoardTO to = new BoardTO();
		to.setSeq(seq);
		
		BoardDAO dao = new BoardDAO();
		to = dao.boardView(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_view1");
		modelAndView.addObject("to", to);
		
		return modelAndView;
	}

}

SpringModel2Ex01.src.model2.DeleteAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class DeleteAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		BoardTO to = new BoardTO();
		to.setSeq(arg0.getParameter("seq"));
		
		BoardDAO dao = new BoardDAO();
		//to = dao.boardView(to);
		to = dao.boardDelete(to);
		//to = dao.boardDeleteOk(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_delete1");
		modelAndView.addObject("to", to);
		
		return modelAndView;
	}

}

SpringModel2Ex01.src.model2.DeleteOkAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class DeleteOkAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		String seq = arg0.getParameter("seq");
		String password = arg0.getParameter("password");
		
		BoardTO to = new BoardTO();
		to.setSeq(seq);
		to.setPassword(password);
		
		BoardDAO dao = new BoardDAO();
		int flag = dao.boardDeleteOk(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_delete1_ok");
		modelAndView.addObject("flag", flag);
		
		return modelAndView;
	}
}

SpringModel2Ex01.src.model2.ModifyAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class ModifyAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		BoardTO to = new BoardTO();
		to.setSeq(arg0.getParameter("seq"));
		
		BoardDAO dao = new BoardDAO();
		to = dao.boardView(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_modify1");
		modelAndView.addObject("to", to);
		
		return modelAndView;
	}
}

SpringModel2Ex01.src.model2.ModifyOkAction

package model2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import model1.BoardDAO;
import model1.BoardTO;

public class ModifyOkAction implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		String seq = arg0.getParameter("seq");
		String subject = arg0.getParameter("subject");
		String mail = arg0.getParameter("mail1") + "@" + arg0.getParameter("mail2");
		String password = arg0.getParameter("password");
		String content = arg0.getParameter("content");
		String wip = arg0.getRemoteAddr();
		
		BoardTO to = new BoardTO();
		to.setSubject(subject);
		to.setMail(mail);
		to.setPassword(password);
		to.setContent(content);
		to.setSeq(seq);
		
		BoardDAO dao = new BoardDAO();
		
		int flag = dao.boardModifyOk(to);
		
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.setViewName("board_modify1_ok");
		modelAndView.addObject("seq", to.getSeq());
		modelAndView.addObject("flag", flag);
		
		return modelAndView;
	}

}

Action.java는 이제 불필요하니 삭제한다.

/WEB-INF/model2 경로를 맞게끔 설정해줘야 servlet-context.xml에서 설정한 경로랑 맞아지고 실행이 가능해진다.

직접 경로를 작성해서 게시판을 실행했다.

index.jsp 파일을 만들어 해당 파일을 실행하면 게시판이 실행되게 해보자. web.xml welcome-file-list에 index.do를 추가해 주자.

SpringModelEx01.WebContent.WEB-INF.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>MVCEx</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>index.do</welcome-file>
  </welcome-file-list>
  
  <!-- 한글 인코딩 필터 -->
  <filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>utf-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>*.do</url-pattern>
  </filter-mapping>
  
  <servlet>
  	<servlet-name>dispatcher</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>
  			/WEB-INF/servlet-context.xml
  		</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>dispatcher</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

SpringModelEx01.WebContent.index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%response.sendRedirect("./board/list.do"); %>

</body>
</html>

전자정보프레임워크 개발환경 설정


64비트 다운 후 설치

eGovFrameDev-3.7.0-64bit를 C:\로 복사한다. 이후 이 디렉토리 안에 eclipse-workspace를 실행환경으로 경로설정해주면 된다.

1. perspective 변경

항상 하던 설정을 세팅해준다. 단, UTF-8은 이미 되어 있기 때문에 안해줘도 됨.

2. 톰캣 설정
아파치 톰캣 파일을 스프링에 있던 어디에 있던거던 복사해와서 붙여준다.

JRE가 없다고 뜬다. 오라클 사이트가서 jdk-8u181 64비트 윈도우 버전을 다운받자

환경설정을 다시 해줘야 하기 때문에 기존 10.0.2버전은 삭제하고 환경변수안에서도 해당 구문을 삭제한다

path에서 위 경로를 추가한 이유는 VSCODE에서 사용하기 위해서 추가해 주었던 것으로 이클립스에서는 상관 없다.

설치한다. 경고 나오면 확인 클릭.
이제 아파치 톰캣 8.5 경로 설정해주면 된다.

eGovFrame Web Project를 만들어 보자

Maven Setting은 자동적으로 설정이 된다.

index를 실행해보자

DB설정을 안해도 데이터를 받아온다는건 메모리DB를 사용했다는 것이다.
톰캣 서버를 중지시키고 index를 다시 실행해보자

메모리 DB가 아니라 오라클 DB로 사용해보자

com.exam.egov01.src/main/resources.db.sampledb.sql을 들어가보자

위에는 MyBatis로 만들어 져 있다. 우리는 SQL 문법으로 만들어 볼 것이다. 다음 아래 두 테이블을 만들어 주자

SQL> create table sample (
  2     id varchar2(16) not null primary key,
  3     name varchar2(50) default null,
  4     description varchar2(100) default null,
  5     use_yn char(1) default null,
  6     reg_user varchar2(10) default null
  7  );

테이블이 생성되었습니다.

SQL> create table ids (
  2     table_name varchar2(16) not null primary key,
  3     next_id decimal(30) not null
  4  );

테이블이 생성되었습니다.

SQL> desc sample;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL VARCHAR2(16)
 NAME                                               VARCHAR2(50)
 DESCRIPTION                                        VARCHAR2(100)
 USE_YN                                             CHAR(1)
 REG_USER                                           VARCHAR2(10)

SQL> desc ids;
 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 TABLE_NAME                                NOT NULL VARCHAR2(16)
 NEXT_ID                                   NOT NULL NUMBER(30)

insert 데이터를 하기 위해 sampledb.sql에서 insert되어 있는 것을 복사해서 메모장에 붙여넣고 뒤에 ;을 붙여넣고 insert하자

pom.xml에서 오라클 사용환경 적용하기

        <repository>
			<id>Datanucleus</id>
			<url>http://www.datanucleus.org/downloads/maven2</url>
		</repository>

        <dependency>
			<groupId>oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3</version>
		</dependency>

이거를 각각 <repositories>와 <depedencies>안에 넣어준다. 아래 참조

<repositories>
		<repository>
			<id>mvn2</id>
			<url>http://repo1.maven.org/maven2/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>egovframe</id>
			<url>http://www.egovframe.go.kr/maven/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>egovframe2</id>
			<url>http://maven.egovframe.kr:8080/maven/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		
		<repository>
			<id>Datanucleus</id>
			<url>http://www.datanucleus.org/downloads/maven2</url>
		</repository>
	</repositories>

	<dependencies>
		<!-- 표준프레임워크 실행환경 -->
        <dependency>
		    <groupId>egovframework.rte</groupId>
		    <artifactId>egovframework.rte.ptl.mvc</artifactId>
		    <version>${egovframework.rte.version}</version>
		    <exclusions>
		    	<exclusion>
		    		<artifactId>commons-logging</artifactId>
		    		<groupId>commons-logging</groupId>
		    	</exclusion>
		    </exclusions>
        </dependency>
        <dependency>
		    <groupId>egovframework.rte</groupId>
		    <artifactId>egovframework.rte.psl.dataaccess</artifactId>
		    <version>${egovframework.rte.version}</version>
        </dependency>
        <dependency>
			<groupId>egovframework.rte</groupId>
			<artifactId>egovframework.rte.fdl.idgnr</artifactId>
			<version>${egovframework.rte.version}</version>
		</dependency>
       	<dependency>
			<groupId>egovframework.rte</groupId>
			<artifactId>egovframework.rte.fdl.property</artifactId>
			<version>${egovframework.rte.version}</version>
		</dependency>

        <dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>servlet-api</artifactId>
		    <scope>provided</scope>
		    <version>2.5</version>
        </dependency>

        <dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>1.2</version>
        </dependency>

        <dependency>
		    <groupId>taglibs</groupId>
		    <artifactId>standard</artifactId>
		    <version>1.1.2</version>
        </dependency>

		<dependency>
	        <groupId>org.antlr</groupId>
	        <artifactId>antlr</artifactId>
	        <version>3.5</version>
   		</dependency>

		<dependency>
			<groupId>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<version>2.3.2</version>
		</dependency>
        
        <!-- mysql이나 oracle DB 사용시 아래 설정 추가  -->
        
        <dependency>
            <groupId>com.googlecode.log4jdbc</groupId>
            <artifactId>log4jdbc</artifactId>
            <version>1.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <!-- 
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.31</version>
        </dependency>
 		
        <dependency>
            <groupId>ojdbc</groupId>
            <artifactId>ojdbc</artifactId>
            <version>14</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc-14.jar</systemPath>
        </dependency>
        -->
        
        <dependency>
			<groupId>oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3</version>
		</dependency>
	</dependencies>

여기에 보는 HSQL이 메모리 DB이다

context-datasource.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:jdbc="http://www.springframework.org/schema/jdbc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/jdbc  http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd">
	
	<!-- 테스트 실행용
	<jdbc:embedded-database id="dataSource" type="HSQL">
		<jdbc:script location= "classpath:/db/sampledb.sql"/>
	</jdbc:embedded-database>
    --> 
     
    <!-- hsql (테스트용 메모리 DB)
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="net.sf.log4jdbc.DriverSpy"/>
        <property name="url" value="jdbc:log4jdbc:hsqldb:hsql://localhost/sampledb"/>
        <property name="username" value="sa"/>
    </bean>
    -->  
    
    <!-- Mysql (POM에서 commons-dbcp, mysql-connector-java 관련 라이브러리 설정 ) 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/example" />
        <property name="username" value="user"/>
        <property name="password" value="password"/>
    </bean>
    -->
    
    <!-- oracle (POM에서 commons-dbcp, ojdbc(라이센스 사항으로 별도로 배포되지 않음) 관련 라이브러리 설정) -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
        <property name="username" value="project"/>
        <property name="password" value="project"/>
    </bean>
   
    
</beans>

FTP에서 강사님이 만들어두신 Oracle용을 다운받아 넣어준다.

sql-map-config.xml에서 sqlmap을 오라클로 수정해준다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<!-- <sqlMap resource="egovframework/sqlmap/example/sample/EgovSample_Sample_SQL.xml"/> -->
	
	<sqlMap resource="egovframework/sqlmap/example/sample/EgovSample_Sample_Oracle.xml"/>
</sqlMapConfig>

index를 실행시킨다.

카테고리명을 test라고 해서 등록시키고 등록여부를 sql에서 확인해보면

SQL> select name from sample where name = 'test'; NAME -------------------------------------------------------------------------------- test

복사해서 아래에 붙이기

SQL> conn system/123456
연결되었습니다.
SQL> grant create view to project;

권한이 부여되었습니다.

SQL> conn project/project
연결되었습니다.
SQL> @C:\eGovFrameDev-3.7.0-64bit\all_sht_ddl_oracle.sql

데이터 집어 넣기 - foreign key를 조심해서 하나하나씩 넣어주기

pom.xml에 오라클 추가해주기

        <repository>
			<id>Datanucleus</id>
			<url>http://www.datanucleus.org/downloads/maven2</url>
		</repository>

        <dependency>
			<groupId>oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3</version>
		</dependency>

이제 데이터 베이스를 연결하자

globals.properties에서 설정을 아래와 같이 해준다

#-----------------------------------------------------------------------
#
#   globals.properties : 시스템 
#   
#-----------------------------------------------------------------------
#   1.  key = value 구조입니다.
#   2.  key값은 공백문자를 포함불가, value값은 공백문자를 가능
#   3.  key값으로 한글을 사용불가,   value값은 한글사용이 가능
#   4.  줄을 바꿀 필요가 있으면 '\'를 라인의 끝에 추가(만약  '\'문자를 사용해야 하는 경우는 '\\'를 사용)
#   5.  Windows에서의 디렉토리 표시 : '\\' or '/'  ('\' 사용하면 안됨)
#   6.  Unix에서의 디렉토리 표시 : '/'
#   7.  주석문 처리는  #사용
#   8.  value값 뒤에 스페이스가 존재하는 경우 서블릿에서 참조할때는 에러발생할 수 있으므로 trim()하거나 마지막 공백없이 properties 값을 설정할것
#-----------------------------------------------------------------------

# 운영서버 타입(WINDOWS, UNIX)
Globals.OsType = WINDOWS

# G4C 연결용 IP (localhost)
Globals.LocalIp = 127.0.0.1

# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨
Globals.DbType = oracle
Globals.UserName=project
Globals.Password=project

# mysql
#Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
#Globals.Url=jdbc:mysql://127.0.0.1:3306/sht

#oracle
Globals.DriverClassName=oracle.jdbc.driver.OracleDriver
Globals.Url=jdbc:oracle:thin:@127.0.0.1:1521:orcl

#Altibase
#Globals.DriverClassName=Altibase.jdbc.driver.AltibaseDriver
#Globals.Url=jdbc:Altibase://127.0.0.1:1721/egovfrm?encoding=UTF-8

#Tibero
#Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
#Globals.Url=jdbc:tibero:thin:@127.0.0.1:1821:egovfrm

#cubrid
#Globals.DriverClassName=cubrid.jdbc.driver.CUBRIDDriver
#Globals.Url=jdbc:cubrid:127.0.0.1:33000:sht:::?charset=utf-8

#Hsql - local hssql 사용시에 적용
#Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
#Globals.Url=jdbc:log4jdbc:hsqldb:hsql://127.0.0.1/sampledb

# MainPage Setting
Globals.MainPage = /cmm/main/mainPage.do

select문을 Mybatis로 다 만들어 둠

위에 들어가보면 다 보임

Mobile Project를 만들어 보기

chrome으로 세팅법

 

반응형

댓글