mybatis 사용법

MyBatis는 Java 언어를 사용하여 데이터베이스에 접근하기 위한 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis를 사용하면 SQL 쿼리문을 작성하지 않고도 데이터베이스와 상호작용할 수 있으며, 데이터베이스 연결, 트랜잭션 관리 및 데이터 매핑을 간편하게 처리할 수 있습니다.

1. MyBatis 설정 및 환경 구성

Java 프로젝트에서 MyBatis를 사용하기 위해 아래와 같이 설정 및 환경을 구성해야 합니다.

  1. MyBatis 라이브러리 추가: pom.xml 파일 (Maven 프로젝트의 경우) 또는 build.gradle 파일 (Gradle 프로젝트의 경우)에 MyBatis 의존성을 추가합니다.
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.6</version>
</dependency>
  1. MyBatis 환경 설정 파일 작성: mybatis-config.xml 파일을 작성하여 MyBatis의 기본 설정을 정의합니다. 이 파일에서 데이터베이스 연결 정보, 트랜잭션 관리 방식 등을 설정할 수 있습니다.
<?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>
    <!-- MyBatis 설정 내용 작성 -->
</configuration>
  1. 데이터베이스 연결 정보 작성: mybatis-config.xml 파일 내에서 데이터베이스 연결 정보를 작성합니다. JDBC 드라이버 클래스명, JDBC URL, 사용자명, 비밀번호 등을 설정합니다.
<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>
</configuration>

2. Mapper 인터페이스 및 SQL 매핑 파일 작성

MyBatis에서 데이터베이스와 상호작용하기 위해 Mapper 인터페이스와 SQL 매핑 파일을 작성해야 합니다.

  1. Mapper 인터페이스 작성: SQL 쿼리를 호출하는 메서드를 정의한 인터페이스를 작성합니다. MyBatis는 이 인터페이스를 기반으로 SQL 쿼리를 실행합니다.
public interface UserMapper {
    User getUserById(int id);
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(int id);
    List<User> getAllUsers();
}
  1. SQL 매핑 파일 작성: UserMapper.xml과 같은 이름의 SQL 매핑 파일을 작성합니다. 이 파일에서 실제 SQL 쿼리를 작성하고 Mapper 인터페이스의 메서드와 매핑합니다.
<?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.UserMapper">
    <select id="getUserById" parameterType="int" resultType="com.example.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
  
    <insert id="insertUser" parameterType="com.example.User">
        INSERT INTO users (name, email) VALUES (#{name}, #{email})
    </insert>
  
    <!-- 나머지 메서드에 대한 SQL 쿼리 작성 -->
</mapper>

3. MyBatis 사용하기

MyBatis를 사용하기 위해 아래와 같은 순서로 작업을 수행합니다.

  1. MyBatis 환경 설정 파일 로드
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  1. SqlSession 생성
SqlSession sqlSession = sqlSessionFactory.openSession();
  1. Mapper 인터페이스 인스턴스화
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  1. Mapper 메서드 호출
User user = userMapper.getUserById(1);
List<User> userList = userMapper.getAllUsers();
  1. SqlSession 닫기
sqlSession.close();

위의 단계를 따르면 MyBatis를 사용하여 데이터베이스와 상호작용할 수 있습니다. 자세한 내용은 MyBatis 공식 문서를 참조하시기 바랍니다.

#MyBatis #Java