전체 글482 109. mybatis 설정 파일 (1) 이번 절에서는 mybatis 설정에 대해 자세히 알아본다. 이전 절에서 작성한 mybatis-config.xml 파일을 참고하여 설명한다. mybatis 프레임워크는 자체 커넥션풀을 구축할 수 있다. 또한, 여러 개의 데이터베이스 연결 정보를 설정해 두고 실행 상황(개발, 테스트, 운영 등)에 따라 사용할 DB를 지정할 수 있다. 실행 성능을 높이기 위해 SELECT 결과를 캐싱해 두기도 하고, SQL 맵퍼 파일에서 사용할 값 객체(Value Object)에 대해 별명을 부여할 수 있다. 다음은 이런 mybatis 프레임워크의 동작 환경을 설정하는 파일이다. # XML 선언과 mybatis 설정을 위한 DTD 선언 mybatis 설정 파일은 XML 기술을 사용하여 작성하기 때문에 제일 먼저 XML 선언과.. 2022. 9. 6. 108. SQL 맵퍼 파일 (2) # 엘리먼트 컬럼에 별명을 붙이는 대신 태그를 이용하면 컬럼 이름과 셋터 이름의 불일치 문제를 손쉽게 해결할 수 있다. 다음과 같이 태그에 컬럼과 연결될 셋터 메서드를 정의한다. 태그의 type 값은 컬럼 데이터를 저장할 클래스 이름 또는 클래스의 별명이다. 클래스에 대한 별명은 mybatis 설정 파일에 정의된다. 앞의 소스에서는 type 값을 project라고 하였는데, spms.vo.Project 클래스를 가리키는 별명이다. 아직 작성하지 않았지만, mybatis 설정 파일에 정의할 것이다. # 엘리먼트 태그의 자식 태그로서 컬럼과 셋터 메서드의 연결을 정의한다. 태그를 살펴보면 column 속성에는 컬럼 이름을 지정하고, property 속성에는 객체의 프로퍼티 이름을 지정한다. 즉 셋터 메서드의.. 2022. 9. 3. 107. SQL 맵퍼 파일 (1) 이번 절에서는 SQL 맵퍼 파일을 작성하는 방법에 대해 자세히 알아본다. 이전 절에서 작성한 MySqlProjectDao.xml 파일을 참고하여 설명한다. mybatis의 가장 중요한 목적 중 하나가 DAO로부터 SQL문을 분리하는 것이다. 이렇게 분리된 SQL문은 SqlSession 객체에서 사용한다. 다음은 이전 절에서 작성한 SQL 맵퍼 파일이다. SELECT PNO, PNAME, STA_DATE, END_DATE, STATE FROM PROJECTS ORDER BY PNO DESC INSERT INTO PROJECTS (PNAME, CONTENT, STA_DATE, END_DATE, STATE, CRE_DATE, TAGS) VALUES (#{title}, #{content}, #{startDate.. 2022. 9. 1. 106. mybatis 적용 (4) 6. SqlSessionFactory 객체 준비 DAO 객체에 주입할 SqlSessionFactory 객체를 준비한다. spms.listeners.ContextLoaderListener 클래스를 열고 다음과 같이 편집한다. package spms.listeners; import java.io.InputStream; import javax.naming.InitialContext; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import javax.sql.. 2022. 8. 31. 105. mybatis 적용 (3) 4. SQL 맵퍼 파일 작성 SqlSession 객체에서 SQL을 실행할 때 참조하는 SQL 맵퍼 파일을 작성한다. spms.dao 패키지에 MySqlProjectDao.xml 파일을 생성하여 다음과 같이 편집한다. SELECT PNO, PNAME, STA_DATE, END_DATE, STATE FROM PROJECTS ORDER BY PNO DESC INSERT INTO PROJECTS (PNAME, CONTENT, STA_DATE, END_DATE, STATE, CRE_DATE, TAGS) VALUES (#{title}, #{content}, #{startDate}, #{endDate}, 0, now(), #{tags}) SELECT PNO, PNAME, CONTENT, STA_DATE, END_DA.. 2022. 8. 30. 104. mybatis 적용 (2) - SqlSession 사용 SqlSession 객체는 SQL을 실행하는 도구이다. 이 객체가 있어야만 SQL문을 실행할 수 있다. 이 객체는 직접 생성할 수는 없고 SqlSessionFactory 객체를 통해서만 얻을 수 있다. //SqlSession : SQL 실행하는 도구, sqlSessionFactory 객체 통해서만 얻을 수 있다 SqlSession sqlSession = sqlSessionFactory.openSession(); SqlSession 객체를 사용한 예를 보면, 회원 목록을 얻고자 SqlSession 객체의 selectList() 메서드를 호출하고 있다. selectList() 메서드는 여러 개의 결과를 반환하는 SELECT문을 실행할 때 호출한다. //SqlSession : SQ.. 2022. 8. 29. 103. mybatis 적용 (1) 이제 웹 애플리케이션에 mybatis를 적용해 본다. 이전 절에서는 mybatis를 사용하는데 필요한 라이브러리 파일(JAR)을 준비하였고, 이번 절에서는 그 라이브러리에 들어있는 클래스를 사용하여 데이터를 처리해 본다. 1. mybatis 구동하기 다음 그림은 mybatis를 이용하여 프로젝트 목록을 가져오는 시나리오이다. ① MySqlProjectDao 클래스는 SqlSessionFactory 객체에게 SQL을 실행할 객체를 요구한다. ② SqlSessionFactory 객체는 SqlSession 객체를 생성하여 반환한다. ③ MySqlProjectDao 클래스는 SqlSession 객체에게 SQL 실행을 요청한다. ④ SqlSession 객체는 SQL이 저장된 맵퍼 파일에서 SQL을 찾는다. ⑤ S.. 2022. 8. 28. 102. mybatis 소개 mybatis는 반복적이고 지루한 JDBC 프로그래밍을 단순화하기 위해 클린턴 비긴(Clinton Begin)이 만든 작은 라이브러리에서 출발하였다. 이 라이브러리는 iBATIS라는 이름으로 2004년 아파치 소프트웨어 재단(Apache Software Foundation)에 기부되면서 널리 알려지게 되었고, 많은 개발자들의 호응을 얻게 된다. 이 프로젝트는 좀 더 효율적인 개발 관리를 목표로 2010년 6월에 아파치 소프트웨어 재단에서 구글 코드(Google Code)로 이사하였고 프로젝트 이름도 mybatis로 바꿨다. 현재는 4년간 지내왔던 구글 코드를 떠나 깃허브(github.com/mybatis)로 이사하였다. mybatis의 핵심은 개발과 유지보수가 쉽도록 소스 코드에 박혀있는 SQL을 별도의.. 2022. 8. 27. 101. 퍼시스턴스 프레임워크의 도입 도입부 및 환경설정 이번 장에서는 JDBC 프로그래밍으로부터 해방시켜 줄 퍼시스턴스 프레임워크에 대해 알아본다. 퍼시스턴스 프레임워크(Persistence Framework)를 사용하면 직접 JDBC API를 호출하지 않고도 데이터베이스에 있는 데이터를 다룰 수 있다. 사실은 개발자 대신 퍼시스턴스 프레임워크가 JDBC API를 호출하는 것이다. - 퍼시스턴스(Persistence) '퍼시스턴스'라는 용어는 개발 분야에서 많이 사용하는 용어이다. 퍼시스턴스는 데이터의 지속성을 의미한다. 즉 애플리케이션을 종료하고 다시 실행하더라도 이전에 저장한 데이터를 다시 불러올 수 있는 기술이다. 퍼시스턴스 프레임워크는 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이다. - 프레임워크(Framework) '.. 2022. 8. 25. 이전 1 ··· 38 39 40 41 42 43 44 ··· 54 다음