📌 01. select쿼리문
DB연동에 있어서 가장 기본이 되는 데이터 조회이다.
Mybatis를 통하여 데이터를 조회하는 방법을 알아야 한다.
📌 02. Mybatis를 통한 DB연동
이전 글에서 배웠던 Mybatis DB연동 순서를 그대로 따라서 학습한다.
- vo클래스 생성
- 조회하고자 할 데이터의 정보를 담은 vo클래스를 생성한다.
많이 해왔던 작업이라 쉽게 수행할 수 있다. - 매핑(mapping)
- 사용하고자할 mapper인스터스를 mapper태그에 잘 선언해준다.
- Mapper인스턴스 정의사원이라는 테이블의 정보를 조회하는 예시이다.
select태그에는 수많은 속성이 있지만 가장 기본적으로 알아야 할 속성은 위의
id속성과 resultType속성이다. <mapper namespace="sawon"> <select id="sawon_list" resultType="vo.SawonVO"> select * from sawon </select> </mapper>
- mapper태그에 mapper인스턴스를 호출할때 사용할 이름을 선언한다.
다음은 DB에 쿼리문은 요청하는 단계이다.
DB에서 데이터를 조회할때 Select쿼리문을 사용한다.
마찬가지로 쿼리문을 적기전에 select태그를 정의해줘야 한다.
id속성
id속성은 구문을 찾기위해 사용될 namespace내의 유일한 구문자이다.
쿼리문은 반드시 한개라는 보장은 없다.
sawon이라는 namespace내에서도 여러개의 구문이 있을수 있는것이다.
이를 구분해줄 수 있는 것이 id속성이다.
사원이라는 테이블의 정보를 단순 조회하고자 할때 위같은 경우는
sawon.sawon_list를 호출해야 할 것이다.
resultType 속성
이 구문에 의해 리턴되는 기대타입의 패키지 경로를 포함한 전체 클래스명이나 별칭이다.
기본자료형같은 경우 자료형 자체만 명시해도 되지만
클래스나 객체와 같은 그외에 경우에는 패키지가 전부 입력을 해줘야 한다.
위의 경우 select * from sawon라는 쿼리문을 통해 리턴되는 기대타입이
SawonVO객체이기 때문에 패키지까지 포함한 vo.SawonVO가 되는것이다.
- DAO정의앞서 배웠던 3가지 준비사항을 모두 작업하고 나면
sql을 요청할 sqlsession 객체를 생성해야 한다.
mapper인스턴스는 자기 스스로 DB에 쿼리문은 요청할 수가 없다.
반드시 누군가에 의해 호출되어야 하는데 그것을 하는것이 DAO클래스이다.
public List<SawonVO> select() {
// sql을 요청할 sqlsession 객체 생성
SqlSession sqlSession = factory.openSession();
List<SawonVO> list = sqlSession.selectList("sawon.sawon_list");
sqlSession.close();
return list;
}
factory객체는 DB에 대한 정보를 가지고있는지만 해당 DB의 정보를 직접 가져오는
작업은 수행할 수가 없다.
그래서 openSession()메서드를 통해 DB에 있는 정보를 사용할 준비를 해야한다.
List를 정의하기 위해 mapper인스턴스를 호출하고
마지막에는 반드시 sqlSession를 닫아줘야 한다.
- Servlet 정의
- 동일한 작업이다.
DAO를 통해 조회하고자 하는 정보를 이미 다 가져왔기 때문에
Servlet에선 이전처럼 list를 가져오고 바인딩, 포워딩 작업을 해주면 된다. - JSP파일 정의
- Servlet을 통해 바인딩, 포워딩작업을 성공적으로 수행했다면
EL표기법을 이용하여 화면에 나타내기만 하면 데이터 조회작업을 완료가 된다.
'Java > JSP' 카테고리의 다른 글
Day06_Mybatis (1) | 2022.06.03 |
---|---|
Day05_AJAX (2) | 2022.05.31 |
Day04_EL표기법 (0) | 2022.05.31 |
Day03_DB연동 (0) | 2021.12.30 |
Day02_VO클래스 (0) | 2021.12.30 |