MyBatis

JSP + MyBatis3 쉽게 적용하기 #2

과일가게 개발자 2014. 8. 8. 10:31
반응형

지난번에 쉽고 빠르게 JSP와 MyBatis를 이용하여 데이터를 SELECT 하는 부분을 포스팅했다.
오늘은 MyBatis를 이용하여 INSERT, UPDATE, DELETE 하는 방법을 설명을 하겠다.

지난번에 XML Mapper 파일에 SELECT 쿼리를 작성할때 아래와 같은 태그를 이용하였다.
<SELECT> ... </SELECT>

INSERT, UPDATE, DELETE를 할때 사용되는 태그도 크게 다르지 않다.

<INSERT> ... </INSERT>
<UPDATE> ... </UPDATE>
<DELETE> ... </DELETE>



1. mapper 에 구문 추가

<insert id="insContents" parameterType="hashmap">
	
		INSERT INTO
			TB_test(id, name)
		VALUES
			(#{id}, #{name})
			
	</insert>
	
	
	<update id="updateContents" parameterType="hashmap">
		UPDATE
			TB_test
		SET
			name = #{name}
		WHERE
			id = #{id}
	</update>


	<delete id="deleteContents" parameterType="hashmap">
	
		DELETE FROM TB_test	WHERE id = #{id}
		
	</delete>


* 태그 명에 주의하면서 넣는다. 가령 <INSERT> 태그 안에 UPDATE 구분이 들어가 있으면 실행이 되지 않는다.



2. INSERT, UPDATE, DELETE

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.test.sqlMap.SqlSessionManager"%>
<%@page import="org.apache.ibatis.session.SqlSessionFactory"%>
<%@page import="org.apache.ibatis.session.SqlSession"%>

<%@page import="java.util.*"%>

<%

	SqlSessionFactory sqlSessionFactory = SqlSessionManager.getSqlSession();
	SqlSession sqlSession = sqlSessionFactory.openSession();
	
	try{
		
		
		HashMap pHm = new HashMap();
		pHm.put("name", "홍길동") ;
		pHm.put("age", "28") ;
		
		
		// Insert
		sqlSession.insert("Test.insContents", pHm) ;
		
		
		
		
		// Update
		sqlSession.update("Test.updateContents", pHm) ;
		
		
		// 영향받은 레코드 개수를 리턴
		int upCnt = sqlSession.update("Test.updateContents", pHm) ; 
		
		
		
		
		
		// DELETE
		sqlSession.delete("Test.deleteContents", pHm) ;
		
		
		// 영향받은 레코드 개수를 리턴
		int delCnt = sqlSession.delete("Test.deleteContents", pHm) ;
		
		
		
		// 커밋
		sqlSession.commit() ;
		
	}catch(Exception e){
		e.printStackTrace() ;
	}finally{
		sqlSession.close() ;
	}
	
	
	
%>



[간략정리]


구분

mapper

java/jsp

INSERT

<insert> </insert>

sqlSession.insert

UPDATE

<update> </update>

sqlSession.update

DELETE

<delete> </delete>

sqlSession.delete

COMMIT

 

sqlSession.commit