인터넷을 찾아보면 주먹구구식 "스프링 게시판 만들기" 블로그 및 강의가 많은데, 거의 태그라이브러리라는 라이브러리와 오라클을 사용하고 있다.

하지만 다른 라이브러리를 사용해야 하는 경우도 많고, 여러 라이브러리(프레임워크)를 사용하여 게시판만들기를 반복하다 보면 자바 실력이 매우 늘 것으로 예상한다.

 

따라서 MYSQL, AngularJS 게시판 등 몇가지로 구분하여 포스팅할 것이며,

이번 포스팅에서는 Taglib와 오라클을 사용하여 게시판을 만들 것이다.

 

Taglib는 자바에서 제공하는 프론트쪽 라이브러리이고, 오라클은 데이터베이스 프로그램이다.

 

백엔드 언어는 자바이며, 스프링프레임워크를 사용한다. (모든에듀의 스프링활용 강의를 참조하였다.)

 


오라클 설치

 

SQL Developer 19.1 다운로드

오라클 11g를 설치하기 전에 설치해야 한다.

개인은 무료로 사용할 수 있다.

https://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

 

Oracle SQL Developer Downloads

 

www.oracle.com

 

Oracle Database 11g R2 다운로드

압축파일 2개를 받아서 같은 폴더 경로에 합친다.

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

 

Oracle Database 11g Release 2 for Microsoft Windows (x64)

Oracle Database 11g Release 2 (11.2.0.1.0) Standard Edition, Standard Edition One, and Enterprise Edition Thank you for accepting the OTN License Agreement; you may now download this software. Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft

www.oracle.com

SQL developer에 들어가서 새로만들기를 눌러 아래와 같이 설정

사용자 이름을 system이라고 둔다.


테이블 생성

오라클을 설치했으면, SQL 디벨로퍼에 들어가서 DB가 저장될 테이블을 생성해야 한다.

아래의 쿼리문을 오라클에 입력/실행 해준다.

create table mvc_bbs(
	bNO number(3) primary key,
	bName varchar2(20),
	bSubject varchar2(80),
	bContent varchar2(300),
	bDate date default sysdate,
	bHit number(3) default 0,
	bGroup number(4),
	bStep number(4),
	bIndent number(4)
);

Table MVC_BBS이(가) 생성되었습니다. 라는 문구가 나오면 성공적으로 테이블이 생성된 것이다.

bStep과 bIndent는 댓글과 관련된 것이다.

 

그리고 오라클은 mysql과 달리 bNO가 1부터 올라가려면 sequence를 생성시켜줘야한다. 아래 쿼리문도 실행시켜준다.

create sequence seq_bbs nocache;

Sequence SEQ_BBS이(가) 생성되었습니다. 라는 문구가 나오면 성공적으로 시퀀스가 생성 된것이다.

 

뒤에 노캐쉬를 왜 붙혀주냐면, 저걸 안붙혀주면 컴퓨터 메모리가 날라가면 디폴트로 시퀀스에 20이 추가된다. 그래서 아래와 같이 이상한 번호들을 보여주는 참사가 일어날 수 있다. nocache붙혀주자.

 

이제 더미 데이터를 넣을 차례, 아래의 쿼리문을 입력/실행 시켜준다.

insert into mvc_bbs (bNo, bName, bSubject, bContent, bHit, bGroup, bStep, bIndent) 
values (seq_bbs.nextval, 'test', 'test입니다.', '안녕하세요.', 0, seq_bbs.currval, 0, 0);

bNO는 1씩 증가해야 하니 시퀀스에 nextval을 넣어준 것이고 그룹은 현재의 시퀀스를 가져와야 하기 때문에 current value 명령어를 넣어주었다.

 

1 행 이(가) 삽입되었습니다. 라는 문구가 나오면 성공적으로 행이 삽입된 것이다.

 

새로고침을 누른 뒤 아래와 같이 보여질 것이다.

 


 

스프링 프레임워크 환경 설정

 

web.xml에 다음과 같이 코드를 붙여넣는다.

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param>
	
	<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- Processes application requests -->
	<servlet>
		<servlet-name>appServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
		
	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	
	<!-- 필터를 만든다. 한번 작성해논 뒤 다른 프로젝트에서도 복사 붙여넣기 함-->
	<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>/*</url-pattern>
	</filter-mapping>

</web-app>

 

그 뒤 아래와 같은 경로에 다음과 같은 이름의 5개의 패키지를 만든다.

 

톰캣 서버에서 오라클 세팅

스프링에서 오라클을 불러 올 수 있도록 세팅을 해야한다.

 

서버의 context.xml 파일에서 아래와 같이 입력함.

 

context.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- The contents of this file will be loaded for each web application --><Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
    <!-- 오라클 세팅 -->
    <Resource auth="Container"
    	driverClassName="oracle.jdbc.driver.OracleDriver"
    	maxActive="50"
    	maxWait="1000"
    	name="jdbc/Oracle11g"
    	password="12351235"
    	type="javax.sql.DataSource"
    	url="jdbc:oracle:thin:@localhost:1521:orcl"
    	username="system" />
    
</Context>

 

 

 

 

그 안에 컨트롤러, VO, DAO 등의 설정은 다음 포스팅에서 

 

 

+ Recent posts