JSP + MyBatis3 Æ®·£Àè¼Ç ó¸®
¼ö¸¹Àº ÀϵéÀ» ÇÏ´Ùº¸¸é DB¿¡ Á¢±ÙÇÏ¿© ¿¬¼Ó¼º ÀÖ°Ô insert, delete, update µîÀ» ¼öÇàÇØ¾ß ÇÒ ÀϵéÀÌ ÀÖ´Ù.
À̶§ Ưº°ÇÑ Å« »çÀ¯°¡ ¾Æ´Ï¸é ÁÖ·Î Æ®·£Àè¼Ç 󸮸¦ ÇÏ°Ô µÇ´Âµ¥, ÀÌ Æ®·£Àè¼ÇÀ̶ó´Â°ÍÀ» °£´ÜÇÏ°Ô ¼³¸íÇϸé
DB ³»¿¡¼ ÇѲ¨¹ø¿¡¼ 󸮵Ǿî¾ß ÇÒ ÀϵéÀ» Çϳª·Î ¹´Â°ÍÀ» ¾ê±âÇÑ´Ù.
Áï, Çѹø¿¡ ƯÁ¤ ·ÎÁ÷³»¿¡¼ 󸮵Ǿî¾ß ÇÒ insert¿Í update°¡ ÀÖ´Ù°í °¡Á¤ÇÒ¶§ ÀÌ ÀϵéÀº ¼øÂ÷ÀûÀ¸·Î ÁøÇàµÇÁö¸¸
¼øÂ÷ÀûÀÎ insert, update °úÁ¤À» ÇϳªÀÇ job À¸·Î º¸°í ±×Áß¿¡¼ 1°³¶óµµ ¿À·ù°¡ ¹ß»ý½Ã ÇØ´ç jobÀ» Ãë¼ÒÇÑ´Ù.
¿¹¸¦ µé¸é ¾î¶² ·ÎÁ÷¿¡¼ ¼øÂ÷ÀûÀ¸·Î A ¶ó´Â Å×ÀÌºí¿¡ insert¸¦ ÁøÇàÇÏ°í insert°¡ ¿Ï·áµÇ¸é B¶ó´Â Å×À̺íÀÇ µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù°í Ä¡ÀÚ.
A¶ó´Â Å×ÀÌºí¿¡ insert´Â ¼º°øÀûÀ¸·Î µÇ¾ú´Ù. ÇÏÁö¸¸ B¶ó´Â Å×ÀÌºí¿¡¼ delete¸¦ ÇÏ´øÁß ¿À·ù°¡ ¹ß»ýÇϸé,
ÀÌ Æ®·£Àè¼Ç 󸮸¦ ÇÑ °æ¿ì A Å×À̺íÀÇ insert µÇ¾ú´ø ³»¿ëµÈ Ãë¼Ò¸¦ ½ÃŲ´Ù. Áï. ¾Õ¼ ¾î¶°ÇÑ ÀϵéÀÌ ¼º°øÇß´õ¶óµµ ¹«È¿È µÇ´Â¼ÀÀÌ´Ù.
Æ®·£Àè¼Ç 󸮸¦ ÇÏÁö ¾ÊÀ»°æ¿ì, B Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ delete ÇÏ´ÂÁß ¿¡·¯°¡ ¹ß»ýÇÒ °æ¿ì A Å×ÀÌºí¿¡ µ¥ÀÌÅÍ´Â ±×´ë·Î ³²°Ô µÈ´Ù.
±×·¯¸é myBatis¿¡¼ Æ®·£Àè¼Ç ó¸® ÇÏ´Â ¹æ¹ýÀ» º¸ÀÚ.
<%@ 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) ;
// Ä¿¹Ô
sqlSession.commit() ;
}
catch
(Exception e){
// ·Ñ¹é
sqlSession.rollback() ;
e.printStackTrace() ;
}
finally
{
sqlSession.close() ;
}
%>
Á¤»óÀûÀ¸·Î ¸ðµç ±¸¹®ÀÌ ¼öÇàµÇ¸é commit À» ÇØÁÖ´Â °ÍÀÌ°í, ½ÇÆÐÇÏ¿© Exception ¿¡ °É¸±°æ¿ì rollback ÇØÁÖ´Â °ÍÀÌ´Ù.
ibatis2 ½ÃÀý¿¡´Â startTransaction ÀÌ¿´´ø°¡ ÇÏ´Â ±¸¹®À» óÀ½ ½ÇÇàÇØ ÁÖ¾ú¾î¾ß Çߴµ¥,
myBatis·Î ¹öÀü¾÷ µÇ°í³ª¼± ÇØ´ç ±¸¹®ÀÌ ºüÁ³´Ù.
Ãâó: http://fruitdev.tistory.com/31 [°úÀÏ°¡°Ô °³¹ßÀÚ]