IBATIS/myBatis
2022.05.02 / 15:55

MyBatis - µ¥ÀÌÅÍ »ðÀÔÇϱâ

ÄÚÄÚ·Î
Ãßõ ¼ö 114
MyBatis - µ¥ÀÌÅÍ »ðÀÔÇϱâ
MyBatis 2019. 2. 4. 17:30

Mybatis¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡ µ¥ÀÌÅ͸¦ »ðÀÔÇغ¸°Ú½À´Ï´Ù.
ÀÌ ±ÛÀ» º¸½Ã±â Àü¿¡ mybatis ¼³Á¤ÀÌ ¾ÈµÇÀÖ´Ù¸é MyBatis ½ÃÀÛÇϱ⠸¦ Âü°íÇϼ¼¿ä

µ¥ÀÌÅͺ£À̽º¿¡ Å×À̺í°ú ½ÃÄö½º »ý¼ºÇϱâ

µ¥ÀÌÅ͸¦ »ðÀÔÇϱâ À§ÇØ ¾Æ·¡¿Í °°Àº Å×À̺í°ú ½ÃÄö½º¸¦ »ý¼ºÇÕ´Ï´Ù.

    create table student(
      student_no number primary key,
      student_name varchar2(30) not null,
      student_tel char(11) not null,
      student_email varchar2(50),
      student_addr varchar2(256),
      reg_date date default sysdate
   );
   create sequence seq_student;

°¡»óÀÇ µ¥ÀÌÅ͵µ Çϳª ³Ö¾îÁÝ´Ï´Ù.

    insert into student values (seq_student.nextval, 'È«±æµ¿', '01012345678', 'honggd@google.com','¼­¿ï½Ã °­³²±¸', default);

µ¥ÀÌÅÍ°¡ Àß µé¾î°¡ ÀÖ½À´Ï´Ù.

Å×½ºÆ® Ŭ·¡½º ¸¸µé±â

MVC ±¸Á¶¸¦ ÀÌ¿ëÇÏ¿© ¸î°¡Áö Ŭ·¡½ºµéÀ» ¸¸µé°Ú½À´Ï´Ù.

ÄÁÆ®·Ñ·¯¸¦ ´ã´çÇÏ´Â MybatisTestServlet ¼­ºí¸´ ÀÔ´Ï´Ù.

    @WebServlet("/mybatis.do")
    public class MybatisTestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private MyBatisService service = new MyBatisService();

    public MybatisTestServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int result = service.insertStudent();
        String msg = result > 0 ? "ÀÔ·Â ¿Ï·á" : "ÀÔ·Â ½ÇÆÐ";
        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().append(msg);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);
    }
}

Æ®·£Àè¼Ç 󸮸¦ ÇØÁÙ MyBatisService Ŭ·¡½ºÀÔ´Ï´Ù.

    import static common.SqlSessionTemplate.getSession;

    public class MyBatisService {

    private MyBatisDao dao = new MyBatisDao();

    public int insertStudent() {
        SqlSession session = getSession();
        int result = dao.insertStudent(session);

        if(result > 0) {
            session.commit();
        }else {
            session.rollback();
        }

        session.close();
        return result;
    }
}

¿¹Àü¿¡ ¸¸µé¾îµÎ¾ú´ø SqlSessionTemplate ¸¦ ÀÌ¿ëÇÏ¿© SqlSessionÀ» ¹Þ¾Æ¿É´Ï´Ù.

DB¿Í Åë½ÅÇÏ´Â MybatisDao Ŭ·¡½ºÀÔ´Ï´Ù.

    public class MyBatisDao {
    public int insertStudent(SqlSession session) {
        int result = session.insert("mybatis.insertStudent");
        return result;
    }
}

JDBC¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¼ºÇÒ ¶§º¸´Ù °£ÆíÇØÁø °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.

mapper ÀÛ¼ºÇϱâ

resource Æú´õ ¹Ø¿¡ mybatis\mapper ·Î Æú´õ¸¦ »ý¼ºÇÕ´Ï´Ù. (resource\mybatis\mapper ÀÇ °æ·Î°¡ µË´Ï´Ù.)
mapper Æú´õ¿¡ mybatis-mapper.xml ÆÄÀÏÀ» »ý¼ºÇսôÙ.

¿ìŬ¸¯ - New - Other¸¦ ¼±ÅÃÇÕ´Ï´Ù.

xml·Î °Ë»öÇÏ¿© XML FileÀ» ¼±ÅÃÇÕ´Ï´Ù.

ÆÄÀÏ À̸§Àº mybatis-mapper.xml ·Î Àû°í Next¸¦ ´©¸¨´Ï´Ù.

DTD ÆÄÀÏÀ» ¼±ÅÃÇÏ°í Next¸¦ ´©¸¨´Ï´Ù.

XML Catalog entry ¸¦ ¼±ÅÃÇÑ ÈÄ DTD Mapper¸¦ ¼±ÅÃÇÕ´Ï´Ù.

À̹ÌÁö¿Í °°Àº È­¸éÀÌ ³ª¿À½Ã¸é µË´Ï´Ù. Finish¸¦ ´­·¯ ¿Ï·áÇÕ´Ï´Ù.

xml ÆÄÀÏÀÌ »ý¼ºµÇ¾ú½À´Ï´Ù. chche-ref ű״ »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀÌ´Ï Áö¿öÁÝ´Ï´Ù.

mapper ű׸¦ ¾Æ·¡¿Í °°ÀÌ ÀÛ¼ºÇÕ´Ï´Ù.

    <mapper namespace="mybatis">
      <insert id="insertStudent">
        INSERT INTO STUDENT VALUES(SEQ_STUDENT.NEXTVAL, 'µÑ¸®', '01012345678', 'ABCD@NAVER.COM', '°æ±âµµ ¼º³²½Ã', DEFAULT)
      </insert>
    </mapper>

insert SQL ÀÌ ÀÛ¼ºµÇ¾ú½À´Ï´Ù.
mapper ű×ÀÇ namespace¿Í insert ű×ÀÇ id °ªÀº À§¿¡¼­ ÀÛ¼ºÇÑ Dao ¿¡¼­ »ç¿ëÇÏ´Â id °ª°ú µ¿ÀÏÇØ¾ß ÇÕ´Ï´Ù.

µû¶ó¼­ namespace ´Â mybatis, id °ªÀº insertStudent¸¦ Àû¾îÁÖ¾ú½À´Ï´Ù.

index.jsp ÀÛ¼ºÇϱâ

Å×½ºÆ® ¼­ºí¸´À¸·Î °¡´Â ¸µÅ©¸¦ °¡Áø jsp ÆÄÀÏÀ» ¸¸µé°Ú½À´Ï´Ù.
body ÅÂ±× ¾È¿¡ °£´ÜÇÏ°Ô a ű׸¸ ³Ö¾îÁÖ¾ú½À´Ï´Ù
<a href="<%=request.getContextPath() %>/mybatis.do">Å×½ºÆ® Çϱâ</a>

Àß µ¿ÀÛÇÏ´ÂÁö È®ÀÎÇغ¸±â

student Å×ÀÌºí¿¡´Â ¾ÆÁ÷ ÇϳªÀÇ µ¥ÀÌÅ͸¸ µé¾îÀÖ½À´Ï´Ù.

Å×½ºÆ® Çϱ⠸µÅ©¸¦ ´­·¯º¾½Ã´Ù.


ÀÔ·Â ¿Ï·á°¡ Ãâ·Â µÇ¾ú´Ù.
Á¤¸» µ¥ÀÌÅÍ°¡ »ðÀԵǾú´ÂÁö DB¿¡¼­ È®ÀÎÇغ¸ÀÚ.

µ¥ÀÌÅÍ°¡ Àß µé¾î°¬´Ù.



Ãâó: https://sinna94.tistory.com/entry/Mybatis-µ¥ÀÌÅÍ-»ðÀÔÇϱâ?category=696828 [Chungs]