[Mybatis] 동적 스키마(Schema) 사용 예제

MyBatis를 사용하여 동적 스키마를 다루려면 SQL 쿼리에서 스키마 이름을 동적으로 생성하거나 변경해야 합니다. 아래는 동적 스키마를 사용하는 예제입니다.

예제: 동적 스키마 사용

  1. 매퍼 인터페이스 작성:

매퍼 인터페이스에 동적 스키마를 사용하는 메서드를 작성합니다.

public interface UserMapper {
    List<User> getUsersInSchema(@Param("schema") String schema);
}` 
  1. 매퍼 XML 파일 작성:
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
    <select id="getUsersInSchema" resultType="User">
        <!-- 동적 스키마를 사용하는 쿼리 -->
        SELECT * FROM ${schema}.users
    </select>
</mapper>` 
  1. Java 코드에서 호출:
public class Main {

    public static void main(String[] args) {
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession sqlSession = sessionFactory.openSession()) {
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            
            // 동적 스키마 값을 파라미터로 전달
            List<User> users = userMapper.getUsersInSchema("schema_name");
            
            System.out.println("Users: " + users);
        }
    }
}` 

위의 예제에서는 ${schema}를 사용하여 동적 스키마를 쿼리에 삽입합니다. 이때 schema 파라미터를 사용하여 동적 스키마 이름을 전달합니다.

동적 스키마를 사용하면 다양한 스키마에서 데이터를 조회하거나 조작할 수 있습니다. 스키마 이름을 파라미터로 전달함으로써 동적으로 스키마를 선택할 수 있습니다.