[java] MyBatis를 사용한 CRUD 작업 처리 방법

본 포스트에서는 Java 언어를 기반으로하는 MyBatis 프레임워크를 사용하여 데이터베이스의 CRUD(Create, Read, Update, Delete) 작업을 수행하는 방법을 알아보겠습니다.

1. MyBatis 설정

먼저, Maven을 사용하여 MyBatis 라이브러리를 프로젝트에 추가합니다.

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

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/mybatis_db" />
                <property name="username" value="username" />
                <property name="password" value="password" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/example/mapper/ExampleMapper.xml" />
    </mappers>
</configuration>

2. 매퍼 인터페이스 및 XML 파일 작성

매퍼 인터페이스를 작성하여 SQL 쿼리를 정의하고, 매퍼 XML 파일에 SQL 쿼리를 매핑합니다.

public interface ExampleMapper {
    // Create
    void insertData(Data data);

    // Read
    Data selectDataById(int id);

    // Update
    void updateData(Data data);

    // Delete
    void deleteData(int id);
}
<mapper namespace="com.example.mapper.ExampleMapper">
    <insert id="insertData" parameterType="com.example.model.Data">
        INSERT INTO data (id, name) VALUES (#{id}, #{name})
    </insert>

    <select id="selectDataById" parameterType="int" resultType="com.example.model.Data">
        SELECT * FROM data WHERE id = #{id}
    </select>

    <update id="updateData" parameterType="com.example.model.Data">
        UPDATE data SET name = #{name} WHERE id = #{id}
    </update>

    <delete id="deleteData" parameterType="int">
        DELETE FROM data WHERE id = #{id}
    </delete>
</mapper>

3. MyBatis 사용

매퍼 인터페이스를 주입받아 MyBatis를 사용하여 CRUD 작업을 수행할 수 있습니다.

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();

ExampleMapper mapper = sqlSession.getMapper(ExampleMapper.class);

// Create
Data newData = new Data(1, "New Data");
mapper.insertData(newData);

// Read
Data data = mapper.selectDataById(1);

// Update
data.setName("Updated Data");
mapper.updateData(data);

// Delete
mapper.deleteData(1);

sqlSession.commit();
sqlSession.close();

위의 예시는 MyBatis를 사용하여 데이터베이스의 CRUD 작업을 처리하는 방법을 보여줍니다.

결론

MyBatis를 사용하면 객체 지향적인 방식으로 SQL 쿼리를 처리할 수 있으며, XML 파일을 이용하여 편리하게 매핑할 수 있습니다. 이를 통해 데이터베이스 작업을 보다 유연하게 처리할 수 있습니다.

참고 자료