mybatis <

MyBatis Logo

MyBatis는 자바 언어를 위한 간단하고 강력한 ORM(Object-Relational Mapping) 프레임워크입니다. ORM은 데이터베이스와 객체 간의 매핑을 자동으로 처리하여 개발자가 직접 SQL 쿼리를 사용하지 않고 데이터베이스에 접근할 수 있도록 도와줍니다.

MyBatis의 주요 특징

MyBatis 사용 예제

1. MyBatis 의존성 추가

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

2. MyBatis 설정 파일 작성

<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_example" />
                <property name="username" value="root" />
                <property name="password" value="password" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/UserMapper.xml" />
    </mappers>
</configuration>

3. SQL 매핑 파일 작성

<mapper namespace="com.example.mapper.UserMapper">
    
    <select id="getUserById" parameterType="int" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    
    <insert id="insertUser" parameterType="com.example.model.User">
        INSERT INTO users (id, name, age) VALUES (#{id}, #{name}, #{age})
    </insert>
    
    <update id="updateUser" parameterType="com.example.model.User">
        UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>
    
 </mapper>

4. MyBatis를 사용하여 데이터베이스 액세스

public class UserDao {
    
    private final SqlSessionFactory sqlSessionFactory;
    
    public UserDao() {
        // MyBatis 설정 파일을 로드
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
    
    public User getUserById(int id) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            return userMapper.getUserById(id);
        }
    }
    
    public void insertUser(User user) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            userMapper.insertUser(user);
            session.commit();
        }
    }
    
    public void updateUser(User user) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper userMapper = session.getMapper(UserMapper.class);
            userMapper.updateUser(user);
            session.commit();
        }
    }
}

마무리

MyBatis는 데이터베이스 액세스를 간단하고 효율적으로 처리하기 위한 강력한 도구입니다. SQL과 자바 코드의 분리, 동적 쿼리 지원, 캐싱 기능 등 다양한 기능을 제공하여 개발자들이 데이터베이스와 상호작용하는 데 도움을 줍니다. 이제 MyBatis를 사용하여 데이터베이스 액세스를 간편하게 처리할 수 있을 것입니다. #MyBatis #ORM