일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 둔산동
- spring게시판
- State
- Render
- 스프링부트
- 리액트
- 지족동
- mysql
- spring
- Gradle
- Restful
- mybatis
- rest
- 스프링프레임워크
- Ajax
- springboot
- Stateless
- 다형성
- spring framework
- Maven
- SpringFramework
- 자바
- 스프링
- Java
- 컴포넌트
- react
- 재정의
- 스프링게시판
- reactjs
- 스프링 게시판
- Today
- Total
Dev.GA
[spring/게시판] #2 mybatis 연동하기 본문
개발환경
Server OS : Windows10
Language : JAVA 1.6
Framework : Spring 3.1.1
WEB Server : Apache
WAS Server : Tomcat 7
build tool : maven 2.5.1
DB : MySQL 5.7.16
ORM : mybatis 3.2.7
2. mybatis 연동하기
spring에 mybatis를 연동하기 위하여 pom.xml에 dependency를 추가한다.
이번 spring 게시판 프로젝트는 가장 기본적인 개발환경을 맞추었기에 RDBMS로 MySQL을 사용하기로 했다.
POM.XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <!-- spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.1.1.RELEASE</version> </dependency> <!-- mysql to java connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.31</version> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- commons-dbcp --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> |
프로젝트에 DB를 연결하기 위한 MySQL 설정 프로퍼티를 추가한다.
설정 프로퍼티 파일은 src/main/resources 경로아래 property 폴더를 생성하고 dbpool.properties 파일을 생성한다.
dbpool.properties
1 2 3 4 | jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/gaboard?useUnicode=yes&characterEncoding=UTF8&autoReconnect=true&autoReconnectForPools=true jdbc.username=root jdbc.password=mysql12#$ | cs |
2-2. mybatis 설정파일 생성하기
스프링에서 MySQL에 연결, 접속하기 위한 설정 파일을 추가한다.
mybatis 설정정보 파일을 src/main/resources/mybatis/config 경로를 만들어 추가한다.
mybatis-config.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?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> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="false"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultStatementTimeout" value="25000"/> </settings> <typeHandlers> <!-- java.sql.Timestamp 를 java.util.Date 형으로 반환 --> <typeHandler javaType="java.sql.Timestamp" handler="org.apache.ibatis.type.DateTypeHandler"/> <typeHandler javaType="java.sql.Time" handler="org.apache.ibatis.type.DateTypeHandler"/> <typeHandler javaType="java.sql.Date" handler="org.apache.ibatis.type.DateTypeHandler"/> </typeHandlers> </configuration> | cs |
다음으로 dbpool.properties 파일을 읽어 MySQL과 연동시켜줄 dbpool-context.xml 파일을 src/main/webapp/WEB-INF/spring/ 위치에
다음과 같이 생성한다.
dbpool-context.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?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:mybatis="http://mybatis.org/schema/mybatis-spring" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd "> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:/property/dbpool.properties</value> </list> </property> </bean> <bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceSpied" /> <property name="logFormatter"> <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter"> <property name="loggingType" value="MULTI_LINE" /> <property name="sqlPrefix" value="SQL:::" /> </bean> </property> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:/mybatis/config/mybatis-config.xml" /> <property name="mapperLocations" value="classpath:/mybatis/mapper/**/*_SQL.xml" /> </bean> <!-- sqlSession --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean> </beans> | cs |
mybatis 설정파일과 db connection을 위한 정보가 설정되면 spring과 mybatis은 아주 간단히 연결되었다.
dbpool-context.xml에서 dbpool.properties파일의 정보를 가지고 MySQL과 db connection을 맺으며,
47번째 라인의 configLocation을 통해 mybatis 설정파일을 읽고,
48번째 라인의 mapperLocations를 통해 모든 맵퍼를 호출하도록 하였다.
이제 spring과 mybatis 연동을 위한 설정은 마무리가 되었으니, 간단한 테이블을 구성하여 데이터를 조회하여 연동이 성공적으로 되었는지 확인하려 했으나 다음 포스팅에서 하기로 하고
그전에 프로젝트 폴더 구조부터 재구성한다.
기존의 Hello world의 잔재를 제거하고
com.ga 패키지 하위로 board, main, member 로 구성하였으며, common에는 공통 기능을 처리하는 부분이 들어갈 예정이다.
기본적으로 게시판, 메인 및 로그인, 회원 크게 3가지 기능이 들어간 게시판 프로젝트로 시작할 것이다.
가장 기본이 되는 기능부터 하나씩 차근차근 진행할 예정이다.(물론 예정..)
맵퍼와 view단 모두 위와 같이 분류하였다.
다음으로, 간단한 게시판(board) 테이블을 생성한다.
1 2 3 4 5 6 7 8 9 | CREATE TABLE `board` ( `code` INT(10) NOT NULL AUTO_INCREMENT, `title` VARCHAR(250) DEFAULT NULL, `content` LONGTEXT, `writer` VARCHAR(50) DEFAULT NULL, `reg_datetime` DATETIME DEFAULT NULL, PRIMARY KEY (`code`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 | cs |
테이블 까지 생성을 했으면 다음 포스팅에서 게시판의 게시글을 등록, 조회, 수정, 삭제 등 게시판의 가장 기본적인 기능에 대하여 포스팅을 진행하도록 하겠다.
'Dev.Project > project1-spring게시판' 카테고리의 다른 글
[spring/게시판] #6 게시판 페이징 처리하기 (19) | 2018.02.23 |
---|---|
[spring/게시판] #5 Interceptor를 이용한 로그인 처리 (3) | 2018.02.02 |
[spring/게시판] #4 게시판에 부트스트랩(bootstrap) 적용하기 (0) | 2017.11.27 |
[spring/게시판] #3 게시판 등록, 조회, 수정, 삭제하기 (15) | 2017.11.21 |
[spring/게시판] #1 Spring 프로젝트 만들기 (1) | 2017.11.08 |