본문 바로가기
✨ Back-end/Spring-Legacy

[Spring-Legacy] mybatis 연결하기

by 환풍 2023. 9. 3.
728x90

 

 

프로젝트 생성

Legacy 프로젝트를 하나 만들어준다.

 

porm.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
<!-- DB CONNECTION 20230523 START -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
 
        <!-- MyBatis 3.4.1 -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
 
        <!-- MyBatis-Spring -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- Spring-jdbc -->
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
cs

porm.xml로 들어가서 해당 코드들을 dependencies 안에 위치하도록 붙여넣어주자.

 

삽입한 코드는 Maven 프로젝트에서 사용되는 의존성 설정이다.

이 의존성들은 프로젝트가 특정 라이브러리와 연결되고 이용할 수 있도록 도와준다.

1.mysql-connector-java

이 의존성은 MySQL 데이터베이스와의 연결을 가능하게 하는 JDBC 드라이버를 제공한다.

2. org.mybatis:mybatis

Mybatis는 SQL 매퍼 프레임워크로, 데이터베이스와 상호작용하는데 도움을 준다.

3.org.mybatis:mybatis-spring

MyBatis-Spring은 MyBatis와 Spring Framework의 통합을 제공하는 라이브러리이다. MyBatis를 Spring 프로젝트랑 통합해 더 쉽게 사용할 수 있도록 도와준다.

4. org.springframework:spring-jdbc

Spring Framework의 일부로 Spring JDBC 모듈을 포함한다.

Spring JDBC는 JDBC 기반 데이터베이스 액세스를 단순화하고 편리하게 만들어준다.

 

이러한 의존성등를 Maven 빌드 도구를 사용해 프로젝트에 추가하면,

해당 라이브러리들이 프로젝트에 자동으로 다운로드되고 클래스패스에 추가된다.

이것들을 이용해 데이터베이스와 상호작용 하거나 MyBatis를 사용해 SQL 쿼리를 실행하는 작업을 진행할 수 있다.

 

root-context.xml

root-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
<!-- Root Context: defines shared resources visible to all other web components -->
    <bean id="ds"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"
            value="com.mysql.cj.jdbc.Driver" />
        <property name="url"
            value="jdbc:mysql://localhost:3306/bitdb?serverTimezone=UTC" />
        <property name="username" value="bit" />
        <property name="password" value="bit" />
    </bean>
 
    <bean id="sqlSessionFactory"
        class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="ds"></property>
        <property name="configLocation"
            value="/WEB-INF/mybatis-config.xml"></property>
    </bean>
 
    <bean id="sqlSession"
        class="org.mybatis.spring.SqlSessionTemplate"
        destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory"
            ref="sqlSessionFactory"></constructor-arg>
    </bean>
    
cs
1. <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

이 부분은 데이터베이스 연결을 설정하는 부분이다.

DriverManagerDataSource는 Spring의 데이터베이스 연결을 관리하는 데 사용되는 클래스다.
driverClassName은 사용할 JDBC 드라이버 클래스를 지정하고, 여기서는 MySQL 드라이버 클래스를 사용한다.
url은 데이터베이스 서버의 URL을 지정한다.
username과 password는 데이터베이스에 연결할 때 사용할 사용자 이름과 암호를 지정한다.

 

2. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

이 부분은 MyBatis의 SqlSessionFactory를 설정한다.
dataSource 프로퍼티는 데이터베이스 연결을 사용하여 SQL 세션 팩토리를 구성한다.
configLocation 프로퍼티는 MyBatis 설정 파일의 경로를 지정한다.

이 파일은 MyBatis 설정에 대한 추가적인 구성을 제공할 수 있다.

 

3. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">

이 부분은 MyBatis의 SqlSession을 Spring SqlSessionTemplate으로 래핑한다
sqlSessionFactory 프로퍼티는 SqlSessionTemplate이 사용할 SQL 세션 팩토리를 지정한다.
destroy-method는 빈이 소멸될 때 어떤 메서드를 호출할지를 지정한다. 여기서는 캐시를 지워준다.

 

이 구성은 Spring과 MyBatis를 함께 사용하여 데이터베이스 연결과 SQL 세션 관리를 설정한다.

이를 통해 애플리케이션은 데이터베이스와 효율적으로 상호 작용할 수 있다.

또한 MyBatis 설정 파일(mybatis-config.xml)은 /WEB-INF 디렉터리에 위치한다고 가정하고 설정된다.

이 부분은 프로젝트 구조에 따라 조정해야 할 수 있다.

 

mybatis-config.xml

 

 

mybatis-config.xml에서 mappers를 통해 각 매퍼들을 연동할 수 있다. *매퍼 추가시 여기 지정해줘야 동작한다.

1
2
3
4
5
6
7
8
9
10
11
<?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>
    
    <mappers>
        <mapper resource="mappers/memberMapper.xml"/> 
    </mappers>
    
</configuration>
 
 
cs

 


테스트

DB

 

memberMapper.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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="memberMapper">
   <resultMap type="com.bit.spring.dto.MemberDTO" id="member">
        <id column="ID" property="id" />
   </resultMap>
 
    <select id="selectId" resultMap="member">
        SELECT ID FROM TESTMEMBER
    </select>
 
</mapper>
cs

 

memberDTO

 

service

 

컨트롤러

 

Run 

 

이렇게 페이지가 정상작동하며, 콘솔창에 1이 뜨는것을 확인해볼 수 있다. 이렇게하면 mybatis 연동 잘 된것이다.

반응형

댓글