[Spring] 데이터베이스 연동

SANG JONG CHOI·2022년 10월 28일
0

Spring

목록 보기
6/11

MyBatis 연동 스프링 프로젝트 작성 순서

1. MVC 프로젝트 생성

New -> Legacy Project -> Spring MVC Project(프로젝트 명) 입력 후 Next -> 패키지 명 입력 -> Finish

spring_mvc_project

2. pom.xml 기본설정

  • Java : 11

  • Spring : 5.2.22.RELEASE

  • Maven 1.8

pom.xml을 실행 후 Java-version을 11

Spring-framework-version을 5.2.22 RELEASE 버전으로 변경

pom_xml_set

스크롤을 내린 후 maven-compiler-plugin의 source와 target을 1.8로 변경

pom_xml_set2

3. 프로젝트 설정

  • Java Compiler
  • Java Build Path
  • Project Facets

생성한 Project에서 우클릭 -> Properties

Java Compiler -> Compiler compliance level을 수정 후 Apply(Use 체크를 해제 한 후 본인에게 맞는 버전 적용)

Java_Compiler

Java Build Path -> Edit ->(현재 사용하고 있는 버전으로 수정) 후 Apply

Java_Buile_Path Java_JRE

Project Facts -> Java 버전을 현재 사용하고 있는 버전(저는 11을 사용중입니다.) 을 바꾼 후 Runtimes 탭의

Apache Tomcat v9.0(본인에게 맞는 버전)을 클릭 후 Apply

Project_facts

MySQL 커넥터 확인

  • C:\apache-tomcat-9.0.64\lib 폴더에
  • mysql-connector-java-8.0.29.jar 파일 있는지 확인

4. pom.xml에 데이터베이스 의존성 설정

  • (라이브러리 추가 : <dependency> 추가)
  • Spring JDBC 의존성 : spring-jdbc
  • Connection Pool 의존성 : commons-dbcp
  • mysql 의존성

실행한 pom.xml 파일의 하단에서 Dependencies 탭 클릭 후 Add(dependency 추가)

pom_xml_depend

spring JDBC 의존성 : spring-jdbc 검색 후 5.2.22 RELEASE[jar] 선택 후 OK

spring-jdbc_5 22 Rellease

간혹 검색이 되지 않는 경우 pom.xml의 <dependencies> 탭 안에 아래 코드를 소스 안에 추가

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.2.22.RELEASE</version>
</dependency>

Connection Pool 의존성 : commons-dbcp

commons-dbcp

소스 코드

<dependency>
  <groupId>commons-dbcp</groupId>
  <artifactId>commons-dbcp</artifactId>
  <version>1.4</version>
</dependency>

mysql 의존성 : mysql-connector 8.0.29

mysql_connector

소스코드

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.29</version>
</dependency>

Mybatis / mybatis-spring 의존성

Mybatis 3.5.10

org-mybatis

Mybatis 소스 코드

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.10</version>
</dependency>

Mybatis-spring 2.0.7

mybatis_spring

Mybatis-spring 소스코드

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>2.0.7</version>
</dependency>

위의 과정을 다 거쳤다면,

pom_xml_depend

추가 후 저장한 후에 pom.xml의 소스 창을 확인합니다.

성공적으로 추가한 것을 알 수 있습니다.

pom_xml

데이터베이스 연결 정보설정

  • jdbc.properties 파일 생성
    • jdbc.driverClassName
    • url / username / password
  • 스프링 설정 파일 생성 : application-config.xml
    • DataSource / Mapper 지정
  • web.xml에 변경된 내용 설정

아래 코드를 복사하여 web.xml </web-app> 안에 넣어 추가하여

한글 출력을 잘 나오게 합니다.

<!-- 한글설정 -->
<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>

	<init-param>
  	<param-name>forceEncoding</param-name>
	  <param-value>true</param-value>
	</init-param>
</filter>

<filter-mapping>
	<filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 한글설정 END -->

src/main/resource - database 폴더 생성 - file -> jdbc.properties

spring 폴더 생성 - Spring bean Configuration file 생성 -> application-config

스크린샷 2022-07-08 오전 2 35 03

db연결을 위해 아래 코드를 jdbc.properties 파일에 작성합니다.

현재 저는 mySql의 root 계정과 패스워드를 사용중이며

3306 호스트의 springs 테이블을 기본 값으로 적용했습니다.

스크린샷 2022-07-08 오전 2 35 36

DataSource / Mapper 지정

Application-config.xml 생성 후 하단 Namespaces 탭에서 beans, context, mybatis-spring을 체크합니다.

생성하기 전에 Next에서 체크할 수 있으나 여기서도 수정이 가능합니다.

NameSpace 스크린샷 2022-07-08 오전 2 35 52

연동 소스코드

<context:property-placeholder location="classpath:database/jdbc.properties"/>
<context:component-scan base-package="com.spring_mvc.mybatis" />

<bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${jdbc.driverClassName}" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mapperLocations" value="classpath:com/spring_mvc/mybatis/**/*.xml" />
</bean>

<mybatis-spring:scan base-package="com.spring_mvc.mybatis.dao"/>

- web.xml에 변경된 내용 설정

​ - application-config.xml 사용한다고 설정

image-20220708025157089

마무리 되었다면 아래 결과와 같이 정상적으로 작동합니다.

image-20220708025254829
profile
No error, No gain

0개의 댓글

관련 채용 정보