카테고리 없음

MyBatis_input & output

99duuk 2024. 9. 4. 15:57
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 쿼리의 결과값의 타입을 명시함. (예: 기본 타입, 객체 타입)