[java] MyBatis에서 테이블 수정하기

MyBatis는 자바 언어를 위한 간편한 ORM(Object-Relational Mapping) 프레임워크로, 데이터베이스 작업을 간단하게 처리할 수 있도록 도와줍니다. 이번 포스트에서는 MyBatis를 사용하여 테이블을 수정하는 방법에 대해 알아보겠습니다.

1. MyBatis 설정하기

먼저 MyBatis를 사용하기 위해서는 라이브러리를 프로젝트에 추가하고 설정 파일을 작성해야 합니다. 다음은 Maven을 사용하는 경우 pom.xml 파일에 MyBatis 의존성을 추가하는 예시입니다.

<dependencies>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
  </dependency>
</dependencies>

또한, MyBatis 설정 파일인 mybatis-config.xml 파일을 작성하여 데이터베이스 연결 정보와 매퍼 파일 위치를 설정해야 합니다. 이 파일은 클래스 패스 상에 위치해야 하며, 다음과 같은 내용을 포함해야 합니다.

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <mapper resource="com/example/mapper/MyTableMapper.xml"/>
  </mappers>
</configuration>

위의 예시는 MySQL 데이터베이스에 연결하기 위한 설정입니다. driver, url, username, password 값을 수정하여 실제 데이터베이스에 연결할 수 있도록 변경해야 합니다. 또한, 매퍼 파일의 위치(MyTableMapper.xml 파일)도 적절하게 설정해주어야 합니다.

2. 테이블 수정 기능 구현하기

테이블을 수정하기 위해서는 MyBatis에서 제공하는 XML 매퍼 파일에 적절한 SQL 문을 작성해야 합니다. 다음은 MyTable 테이블의 데이터를 수정하는 예시입니다.

MyTableMapper.xml

<?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="com.example.mapper.MyTableMapper">
  <update id="updateMyTable" parameterType="com.example.model.MyTable">
    UPDATE my_table
    SET column1 = #{column1},
        column2 = #{column2}
    WHERE id = #{id}
  </update>
</mapper>

위의 예시는 MyTable 테이블의 column1, column2 값을 수정하는 SQL 문을 작성한 것입니다. #{column1}, #{column2}, #{id}는 MyBatis의 바인딩 변수로, 실제 값을 전달하여 SQL문 실행 시 값을 치환합니다.

3. MyBatis에서 테이블 수정하기

이제 실제로 MyBatis를 사용하여 테이블을 수정해봅시다. 다음은 테이블 수정 기능을 제공하는 MyTableDAO 클래스의 예시입니다.

import org.apache.ibatis.session.SqlSession;

public class MyTableDAO {
  private final SqlSession sqlSession;
  
  public MyTableDAO(SqlSession sqlSession) {
    this.sqlSession = sqlSession;
  }
  
  public void updateMyTable(MyTable myTable) {
    sqlSession.update("com.example.mapper.MyTableMapper.updateMyTable", myTable);
    sqlSession.commit();
  }
}

위의 예시에서는 SqlSession.update() 메소드를 사용하여 MyBatis 매퍼 파일의 SQL 문을 실행하고, SqlSession.commit() 메소드를 호출하여 트랜잭션을 커밋합니다.

마무리

이번 포스트에서는 MyBatis를 사용하여 테이블을 수정하는 방법에 대해 알아보았습니다. MyBatis는 간편한 설정과 강력한 SQL 매핑을 제공하여 데이터베이스 작업을 단순화할 수 있습니다. MyBatis를 사용하면 효율적이고 안정적인 데이터베이스 작업을 수행할 수 있으니, 다양한 프로젝트에 활용해보시기 바랍니다.

참고 자료