Framework & Library/MyBatis

[MyBatis] INSERT문/UPDATE문/DELETE문 요청

gangintheremark 2023. 8. 4. 17:15
728x90

MyBatis의 연동과 SELECT문 요청은 아래 글 참고

 

[MyBatis] MyBatis 실행 순서 정리 ✍️ - SELECT 문

MyBatis는 자바 언어를 기반으로 데이터베이스 프로그래밍을 쉽게 할 수 있게 도와주는 SQL Mapper 프레임 워크로 데이터베이스와 자바 객체들 간의 상호 매핑을 단순화하고 SQL 쿼리를 실행하는데

gangintheremark.tistory.com

DML 요청

  • MyBatis 는 기본적으로 auto commit 이 아니기 때문에 명시적으로 commit 호출을 해야한다. (JDBC는 자동commit)
// insert
int n = session.insert("");
int n = session.insert("", Object obj);

// update
int n = session.update("");
int n = session.update("", Object obj);

// delete
int n = session.delete("");
int n = session.delete("", Object obj);

session.commit(); 호출

INSERT문 실습

/* DeptMapper.xml */ 
    <insert id="addDept" parameterType="DeptDTO">
        insert into dept (deptno, dname, loc)
        values ( #{deptno}, #{dname}, #{loc} )
    </insert>

/* Main.java */
    DeptDTO dto = new DeptDTO(50, "개발", "서울");
    int n = session.insert("DeptMapper2.addDept", dto);
    System.out.println(n + " 개가 저장됨");
    session.commit();  // 트랜잭션 종료 

UPDATE문 실습

/* DeptMapper.xml */ 
// 파라미터 값을 hashmap 으로 (필수는 X) 
    <update id="updateDept" parameterType="hashmap">
        update dept
        set dname = #{dname}, loc = #{loc}
        where deptno = #{deptno}
    </update>

/* Main.java */
        HashMap<String, Object> map = new HashMap<>();
        map.put("deptno", 50);
        map.put("dname", "사무");
        map.put("loc", "경기");
        int n2 = session.update("DeptMapper2.updateDept", map);
        System.out.println(n2 + " 개가 수정됨");
        session.commit();

DELETE문 실습

/* DeptMapper.xml */ 
    <delete id="deleteDept" parameterType="int">
        delete from dept
        where deptno=#{deptno}
    </delete>

/* Main.java */
        int n3 = session.delete("DeptMapper2.deleteDept", 50);
        System.out.println(n3 + " 개가 삭제됨");
        session.commit();

        session.close();

728x90