프로퍼티를 사용하여 데이터베이스 설정 변경하기

JavaBeginner
지금 연습하기

소개

이 프로젝트에서는 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 파일로 이동하는 방법을 배우게 됩니다.

  1. MyBatisPropertiesProject/src/main/resources 디렉토리에 있는 db.properties 파일을 엽니다.
  2. 다음 속성을 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 파일을 수정하는 방법을 배우게 됩니다.

  1. MyBatisPropertiesProject/src/main/resources 디렉토리에 있는 mybatis-config.xml 파일을 엽니다.
  2. db.properties 파일에서 속성을 가져오기 위해 파일 시작 부분에 다음 줄을 추가합니다.
<properties resource="db.properties"/>
  1. 가져온 속성을 사용하도록 <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>
  1. 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에 정의된 속성을 사용하여 데이터베이스 연결을 구성합니다.

✨ 솔루션 확인 및 연습

테스트 케이스 실행

테스트 케이스를 실행하려면 다음 단계를 따르세요.

  1. 터미널에서 다음 명령을 사용하여 MyBatisPropertiesProject 프로젝트 디렉토리로 이동합니다.
cd ~/project/MyBatisPropertiesProject/
  1. 다음 명령을 실행하여 테스트 케이스를 실행합니다.
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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.