[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 파일을 이용하여 편리하게 매핑할 수 있습니다. 이를 통해 데이터베이스 작업을 보다 유연하게 처리할 수 있습니다.