[Mybatis] 동적 스키마(Schema) 사용 예제
MyBatis를 사용하여 동적 스키마를 다루려면 SQL 쿼리에서 스키마 이름을 동적으로 생성하거나 변경해야 합니다. 아래는 동적 스키마를 사용하는 예제입니다.
예제: 동적 스키마 사용
- 매퍼 인터페이스 작성:
매퍼 인터페이스에 동적 스키마를 사용하는 메서드를 작성합니다.
public interface UserMapper {
List<User> getUsersInSchema(@Param("schema") String schema);
}`
- 매퍼 XML 파일 작성:
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
<select id="getUsersInSchema" resultType="User">
<!-- 동적 스키마를 사용하는 쿼리 -->
SELECT * FROM ${schema}.users
</select>
</mapper>`
- 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
파라미터를 사용하여 동적 스키마 이름을 전달합니다.
동적 스키마를 사용하면 다양한 스키마에서 데이터를 조회하거나 조작할 수 있습니다. 스키마 이름을 파라미터로 전달함으로써 동적으로 스키마를 선택할 수 있습니다.