mapper.xml

jiji·2023년 12월 21일
0

DataBase

목록 보기
14/14

💡 MyBatis는 Java 객체와 SQL 데이터베이스 사이의 매핑을 쉽게 해주는 퍼시스턴스 프레임워크이다. 이를 사용해 복잡한 JDBC 코드를 작성하지 않고도 DB 작업을 쉽게 수행하도록 해준다!

* jdbc : DB에 접근할 수 있도록 하는 API
** 퍼시스턴스(Persistence) 프레임워크란?
데이터의 영속성을 관리하는 기술을 구현한 소프트웨어 프레임워크
* 영속성 : 데이터가 생성된 이후에도 지속적으로 존재한다는 의미
	DB나 파일 시스템 등에 데이터를 저장하고 관리하는 과정
ex. Hibernate, MyBatis, Spring Data JPA, .NET의 Entity Framework 등
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="@Mapper 클래스 경로">
  
    <select id="selectAll : 메서드 명" parameterType="Entity 경로" resultType="egovMap">
    </select>

    <insert id="" parameterType="">
    </insert>
  
</mapper>

🔥 식별자

  • namespace : interface repository 클래스에 @Mapper 어노테이션을 통해 매핑된 파일
  • @Mapper("ooo~mapper") : '~~/~~/ooo~mapper' 와 같이 이름 지정 가능
  • id : List<Map<String, Object>> selectAll();

    • SQL 쿼리, 매핑할 메서드의 이름
    • XML에서 해당 쿼리를 참조하거나 Java에서 매퍼를 호출하는 데 사용
  • parameterType : java 이하 (sql문의 파라미터로 사용될) entity 클래스 경로 기재

    • 쿼리에 전달되는 파라미터 객체의 타입을 정의한다(MyBatis가 쿼리와 매핑할 객체를 인식하고 처리)
    • mapper-config.xml - 파일에서 경로를 지정 한다
    • config.xml의 경로 : resources > 프로젝트명 > config 패키지에 위치

파라미터 매핑

// 매퍼 인터페이스
public interface UserMapper {
    User getUserById(int userId);
}

매퍼 인터페이스의 매개변수를 SQL 쿼리의 파라미터로 직접 매핑 할 수 있다.

<!-- MyBatis 매퍼 XML -->
<select id="getUserById" parameterType="int" resultType="User">
    SELECT * FROM users WHERE id = #{userId}
</select>

결과 매핑

SQL 쿼리 결과를 Java 객체에 자동으로 매핑

<resultMap id="userResultMap" type="User">
    <result property="id" column="user_id"/>
    <result property="name" column="user_name"/>
    <result property="email" column="user_email"/>
</resultMap>

<select id="getUserById" parameterType="int" resultMap="userResultMap">
    SELECT user_id, user_name, user_email FROM users WHERE id = #{userId}
</select>

resultMap을 정의하여 columnentity의 필드를 매핑

🔥 매퍼 설정 파일(xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <!-- 데이터베이스 연결 정보 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" />
                <property name="username" value="root" />
                <property name="password" value="password" />
            </dataSource>
        </environment>
    </environments>

    <!-- 매퍼 설정 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml" />
        <!-- 다른 매퍼들의 경로 또는 resource를 여기에 추가 -->
    </mappers>
</configuration>
  • MyBatis 기본적인 환경 설정 파일
  • environments 태그 : 데이터베이스 연결 정보 설정
  • mappers 태그 : 실제 SQL 문이 작성된 매퍼 파일들을 등록
  • 트랜잭션 관리 설정, 캐시 설정 등 MyBatis 설정 파일에서 제어할 수 있는 내용을 설정할 수 있다.

0개의 댓글