List<User> users = userMapper.selectAllUsers();
1. parameterType
- 역할: SQL 쿼리에 전달할 입력 파라미터의 타입을 명시함.
- 용도: Java 기본 타입, Java 객체, 또는 사용자 정의 객체(POJO)를 쿼리에 전달할 때 MyBatis가 해당 파라미터를 올바르게 매핑하도록 도와줌.
<select id="selectUserById" parameterType="int" resultType="User">
SELECT * FROM users WHERE id = #{id}
</select>
- parameterType="int": 이 쿼리에 전달될 파라미터의 타입이 정수형임을 명시함.
- Java 메서드에서 정수형 파라미터를 전달하게 됨:
int userId = 1;
User user = userMapper.selectUserById(userId);
객체를 사용할 때
<insert id="insertUser" parameterType="com.example.domain.User">
INSERT INTO users (name, email) VALUES (#{name}, #{email})
</insert>
- parameterType="com.example.domain.User": User 객체를 쿼리에 전달하며, #{name}과 #{email}은 User 객체의 필드에서 값을 가져옴.
2. resultType
- 역할: SQL 쿼리의 결과 타입을 명시함.
- 용도: 쿼리 실행 후 반환되는 결과를 Java의 어떤 타입으로 변환할지를 MyBatis에게 알려줌.
- 타입: Java의 기본 타입이나 POJO 클래스, 컬렉션 등을 지정할 수 있음.
<select id="selectUserById" parameterType="int" resultType="com.example.domain.User">
SELECT * FROM users WHERE id = #{id}
</select>
리스트로 결과 반환
<select id="selectAllUsers" resultType="com.example.domain.User">
SELECT * FROM users
</select>
- resultType="com.example.domain.User": 여러 개의 행이 반환될 경우, MyBatis는 이를 자동으로 List<User>로 변환함.
- Java 메서드에서 이를 다음과 같이 사용할 수 있음:
3. ∴
- parameterType: SQL 쿼리에 전달할 입력값의 타입을 명시함. (예: 기본 타입, 객체 타입)
- resultType: SQL 쿼리의 결과값의 타입을 명시함. (예: 기본 타입, 객체 타입)