소개
이 프로젝트에서는 MyBatis 기반 애플리케이션에서 속성 (properties) 을 사용하여 데이터베이스 설정을 수정하는 방법을 배우게 됩니다. MyBatis 는 Java 애플리케이션과 데이터베이스 간의 상호 작용을 단순화하는 널리 사용되는 Java 영속성 프레임워크입니다.
👀 미리보기
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.labex.test.MyBatisTest
Data deleted successfully
Data inserted successfully
[course number:1 course name:Data Structures teacher:John Smith, course number:2 course name:Java teacher:Mary Johnson, course number:3 course name:Python teacher:David Brown, course number:4 course name:C++ teacher:Jennifer Davis, course number:6 course name:C teacher:Michael Wilson, course number:8 course name:Artificial Intelligence teacher:Emily Thompson]
Data updated successfully
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.1 sec
🎯 과제
이 프로젝트에서는 다음을 배우게 됩니다.
- 데이터베이스 설정을
mybatis-config.xml파일에서db.properties파일로 이동하는 방법. - 데이터베이스 연결을 구성하기 위해
db.properties파일에 정의된 속성을 사용하도록mybatis-config.xml파일을 수정하는 방법. - 제공된 테스트 케이스를 실행하여 애플리케이션의 기능을 확인하는 방법.
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다.
- 데이터베이스 설정을 MyBatis 구성 파일에서 분리할 수 있습니다.
- 속성을 사용하여 MyBatis 기반 애플리케이션에서 데이터베이스 연결을 구성할 수 있습니다.
- MyBatis 구성 파일에서 속성 값을 가져와 사용할 수 있습니다.
- 테스트 케이스를 실행하여 애플리케이션의 기능을 보장할 수 있습니다.
데이터베이스 설정을 db.properties 파일로 이동
이 단계에서는 데이터베이스 설정을 mybatis-config.xml 파일에서 db.properties 파일로 이동하는 방법을 배우게 됩니다.
MyBatisPropertiesProject/src/main/resources디렉토리에 있는db.properties파일을 엽니다.- 다음 속성을
db.properties파일에 추가합니다.
## Database Configuration
## Database driver class name
driver=com.mysql.cj.jdbc.Driver
## Database connection URL
url=jdbc:mysql://localhost:3306/MyBatisDemo?characterEncoding=utf-8
## Database username
username=root
## Database password
password=
## Mapper Configuration
## Package containing MyBatis mapper interfaces
mapper.package=org.labex.mapper
이러한 속성은 데이터베이스 드라이버, 연결 URL, 사용자 이름 및 비밀번호뿐만 아니라 MyBatis 매퍼 인터페이스를 포함하는 패키지를 정의합니다.
프로퍼티를 사용하도록 mybatis-config.xml 파일 수정
이 단계에서는 db.properties 파일에 정의된 속성을 사용하도록 mybatis-config.xml 파일을 수정하는 방법을 배우게 됩니다.
MyBatisPropertiesProject/src/main/resources디렉토리에 있는mybatis-config.xml파일을 엽니다.db.properties파일에서 속성을 가져오기 위해 파일 시작 부분에 다음 줄을 추가합니다.
<properties resource="db.properties"/>
- 가져온 속성을 사용하도록
<dataSource>요소에서 데이터베이스 연결 구성을 업데이트합니다.
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
mapper.package속성을 사용하도록<mappers>요소를 업데이트합니다.
<mappers>
<package name="${mapper.package}"/>
</mappers>
완전한 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>
<!-- Import properties from db.properties file -->
<properties resource="db.properties"/>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!-- Configure database connection using imported properties -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- Register SQL mapping files -->
<mappers>
<package name="${mapper.package}"/>
</mappers>
</configuration>
이제 데이터베이스 구성은 db.properties 파일에 저장되고, mybatis-config.xml 파일은 db.properties에 정의된 속성을 사용하여 데이터베이스 연결을 구성합니다.
테스트 케이스 실행
테스트 케이스를 실행하려면 다음 단계를 따르세요.
- 터미널에서 다음 명령을 사용하여
MyBatisPropertiesProject프로젝트 디렉토리로 이동합니다.
cd ~/project/MyBatisPropertiesProject/
- 다음 명령을 실행하여 테스트 케이스를 실행합니다.
mvn test
출력은 다음과 유사해야 합니다.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.labex.test.MyBatisTest
Data deleted successfully
Data inserted successfully
[course number:1 course name:Data Structures teacher:John Smith, course number:2 course name:Java teacher:Mary Johnson, course number:3 course name:Python teacher:David Brown, course number:4 course name:C++ teacher:Jennifer Davis, course number:6 course name:C teacher:Michael Wilson, course number:8 course name:Artificial Intelligence teacher:Emily Thompson]
Data updated successfully
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.1 sec
이는 테스트 클래스가 MyBatis 를 사용하여 Course라는 데이터베이스 테이블에서 CRUD (Create, Read, Update, Delete) 작업을 수행함을 보여줍니다. 여기에는 select, insert, update 및 delete 작업이 포함됩니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



