본문 바로가기

JAVA

이클립스 스프링MVC 기본 환경설정

반응형

이클립스 스프링MVC 기본 환경설정

 

- 이클립스
- 스프링MVC
- MariaDB
- MyBatis

 

 

 

1. encoding UTF-8 설정

 - Window -> Preferences -> encoding 입력 -> encoding UTF-8로 셋팅

 - Workspace, CSS Files, HTML Files, JSP Files, XML Files

 

 

2. Maven 환경설정 (선택사항)

pom.xml에서 설정한 라이브러리 실제 저장 경로 변경

 

maven_settings.xml 파일 내용


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>./local_repository</localRepository> 
  <interactiveMode>true</interactiveMode>
  <offline>false</offline>
</settings>

 

모듈 파일이 maven_settings.xml 파일에 셋팅한곳으로 저장된다.

 

 

 

3. pom.xml

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
		
		
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-jdbc</artifactId>
		    <version>${org.springframework-version}</version>
		</dependency>
		
		
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-databind</artifactId>
		    <version>2.9.10</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
		<!-- 
		<dependency>
		    <groupId>com.fasterxml.jackson.dataformat</groupId>
		    <artifactId>jackson-dataformat-xml</artifactId>
		    <version>2.9.10</version>
		</dependency>
		 -->
		 
		<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
		<dependency>
		    <groupId>org.mariadb.jdbc</groupId>
		    <artifactId>mariadb-java-client</artifactId>
		    <version>2.7.4</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis</artifactId>
		    <version>3.2.8</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>1.2.2</version>
		</dependency>
		
				
		<!-- AspectJ -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${org.aspectj-version}</version>
		</dependency>

 

 

4. DB 사용자 테이블 생성

MariaDB 에서 아이디, 비번 생성후 DB 생성후 board 테이블 생성

--
-- 테이블 구조 `board`
--

CREATE TABLE `board` (
  `id` int(11) NOT NULL,
  `title` varchar(255) DEFAULT NULL COMMENT '제목',
  `contents` text DEFAULT NULL COMMENT '내용'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='게시판';

--
-- 덤프된 테이블의 인덱스
--

--
-- 테이블의 인덱스 `board`
--
ALTER TABLE `board`
  ADD PRIMARY KEY (`id`);

--
-- 덤프된 테이블의 AUTO_INCREMENT
--

--
-- 테이블의 AUTO_INCREMENT `board`
--
ALTER TABLE `board`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

 

5. root-context.xml

mariadb 연결설정, mybatis 연결설정

<?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 https://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
	
	<!-- mariadb 연결 설정 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="org.mariadb.jdbc.Driver" />
		<property name="url" value="jdbc:mariadb://127.0.0.1:3306/board" />
		<property name="username" value="root" />
		<property name="password" value="1234" />
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:/mybatis-config.xml" />
		<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
	</bean>
	
	<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
		<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
	</bean>
		
</beans>

 

 

6. web.xml

한글처리 필터

	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- 한글처리를 위한 Filter -->
	<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>

 

7. mybatis-config.xml

src/main/resources/mybatis-config.xml  파일 생성하기

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

 

8. BoardMapper.xml

src/main/resources/mappers/com/mycomp/myapp/board/mapper/BoardMapper.xml 경로따라 폴더생성후 파일 생성하기

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 게시판 -->
<mapper namespace="com.mycomp.myapp.board.mapper">
	<!-- 게시판 저장 -->
	<insert id="insertBoard">
		INSERT INTO board
		(
			id
			, title
			, contents
		)
		VALUES
		(
			#{id}
			, #{title}
			, #{contents}
		)	
	</insert>
	
	<!-- 게시판 조회 -->
	<select id="selectBoardList"
			resultType="com.mycomp.myapp.board.vo.BoardVO">
		SELECT	id				/* id */
				, title			/* 제목 */
				, contents		/* 내용 */
		FROM	board
		ORDER BY id desc
	</select>
	
	<!-- 게시판 상세 -->
	<select id="selectBoardDetail"
			parameterType="com.mycomp.myapp.board.vo.BoardVO"
			resultType="com.mycomp.myapp.board.vo.BoardVO">
		SELECT	id				/* id */
				, title			/* 제목 */
				, contents		/* 내용 */
		FROM	board
		WHERE	id = #{id}
	</select>
	
	<!-- 게시판 수정 -->
	<update id="updateBoard"
			parameterType="com.mycomp.myapp.board.vo.BoardVO">
		UPDATE  board
		SET		title 		= #{title}
				, contents 	= #{contents}
		WHERE	id 	= #{id}
	</update>
	
	<!-- 게시판 삭제 -->
	<delete id="deleteBoard"
			parameterType="com.mycomp.myapp.board.vo.BoardVO">
		DELETE FROM board
		WHERE id = #{id}
	</delete>
</mapper>

 

반응형