DEV/Backend

MyBatis

Beomsu Koh 2023. 7. 11.

MyBatis

- Java의 오픈 소스 ORM 프레임워크이다

MyBatis는 기존 JDBC 코드의 반복과 복잡성을 줄이고, 데이터베이스와 객체 간의 매핑을 보다 편리하게 처리할 수 있도록 도와줍니다.
즉 개발자는 복잡한 SQL 매핑과 성능 최적화를 자유롭게 제어할 수 있습니다.

예제 코드

같은 기능인데도 MyBatis가 간편한게 보인다

MyBatis

User Object 맵핑을 바로 해준다

public interface UserMapper {
	@Select("SELECT * FROM users WHERE id = #{id}")
	User getUserById(int id);
}

JDBC

  • 커서 만들고, Close 하고 세팅 할 것이 많다.
public class UserDAO {
    private final DataSource dataSource;

    public UserDAO(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    // 사용자 ID에 해당하는 사용자 정보 가져오기
    public User getUserById(int id) {
        try (Connection connection = dataSource.getConnection();
             PreparedStatement statement = connection.prepareStatement("SELECT * FROM users WHERE id = ?")) {
            statement.setInt(1, id);
            try (ResultSet resultSet = statement.executeQuery()) {
                if (resultSet.next()) {
                    User user = new User();
                    user.setId(resultSet.getInt("id"));
                    user.setEmail(resultSet.getString("email"));
                    user.setPassword(resultSet.getString("password"));
                    user.setUsername(resultSet.getString("username"));
                    user.setRoles(resultSet.getString("roles"));
                    return user;
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

레퍼런스

  • 🐥 카카오테크캠퍼스 - 2단계 3주차
  • 🐥 카카오테크캠퍼스 - 2단계 3주차 강의
  • R - 신입 백엔드 개발자 취업준비&후기 자소서, 포트폴리오, 면접 TIP
  • 🌱 129 DBMS 접속
  • 🌱 호남 사이버 보안 컨퍼런스

부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>

'DEV > Backend' 카테고리의 다른 글

왜 예외처리가 안되는거지  (0) 2023.07.28
Hibernate  (0) 2023.07.11
Restful API  (2) 2023.07.11
Mock API 작성하는 팁  (0) 2023.07.10
TypeORM의 Entity 참조는 어떻게 일어나는가?  (0) 2023.06.27

댓글