ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MyBatis - 데이터를 삽입하는 방법들
    MyBatis 2019. 2. 11. 20:20

    마이바티스로 데이터를 삽입하는 방법들

    1. 고정된 값 넣기

    파라미터를 가지지 않는 sql 의 경우이다.

        <insert id="insertStudent">
            INSERT INTO STUDENT VALUES(SEQ_STUDENT.NEXTVAL, '둘리', '01012345678', 'ABCD@NAVER.COM', '경기도 성남시', DEFAULT)
        </insert>

    변하는 값이 없이 매번 같은 값이 들어가게 된다.

    2. 파라미터를 이용하여 넣기

    파라미터는 #{변수 이름} 으로 사용한다.

        <insert id="insertStudent" parameterType="string">
              INSERT INTO STUDENT VALUES(SEQ_STUDENT.NEXTVAL, #{name}, '01043215698', 'ABC@NAVER.COM', '서울시', DEFAULT)
        </insert>

    이번에는 이름 값을 파라미터로 받아서 데이터를 삽입하는 코드이다.
    insert 태그에서 파라미터에 들어가는 변수 타입을 parameterType에 넣어준다.

    마이바티스 와 자바의 타입을 비교한 표이다.
    자바 자료형으로는 String 값이 들어갔기 때문에 parameterType에는 마이바티스 타입으로 string을 적어주었다.

    dao에서는 int result = session.insert("mybatis.insertName", name); 이렇게 써주었다.
    String 값인 name을 insert메소드의 두번째 매개변수로 넣어준다.

    파라미터를 사용하는 방법은 PreparedStatment 를 사용하는 방법과 비슷하다.

    3. 객체 넣기

        <insert id="enrollStudent" parameterType="com.mybatis.model.vo.Student">
              INSERT INTO STUDENT VALUES(SEQ_STUDENT.NEXTVAL, #{studentName}, #{studentTel}, #{studentEmail}, #{studentAddress}, DEFAULT)
        </insert>

    insert 문의 values에는 객체의 속성 이름을 파라미터로 넣어준다.
    객체를 넣을 때는 parameterType에 패키지 경로까지 다 써주어야 한다.

    패키지 경로를 쓰지 않으려면 다음과 같이 mybatis-config.xml를 수정하면 된다.

        <typeAliases>
            <typeAlias type="com.mybatis.model.vo.Student" alias="student"/>
        </typeAliases>

    typeAlias 태그의 type 속성에는 패키지를 포함한 클래스 이름을 쓰고 alias에는 그 클래스를 사용하기 위한 별칭을 적어준다.

    configuation 태그는 위의 이미지와 같은 구조를 갖는다.
    따라서 typeAliases 태그를 넣을 때는 저 구조에 맞게 넣어주어야 한다.

    typeAliases 태그를 넣어준 후에는

        <insert id="enrollStudent" parameterType="student">
              INSERT INTO STUDENT VALUES(SEQ_STUDENT.NEXTVAL, #{studentName}, #{studentTel}, #{studentEmail}, #{studentAddress}, DEFAULT)
        </insert>

    parameterType을 student 로 적을 수 있다.

    반응형

    댓글 0

Designed by Tistory.