👉 1) mybatis 연결 설정을 한다.
1. pom.xml 의존성 추가
2. root-context.xml에서 db 연결 정보 설정
3. mybatis-config.xml에서 mybatis 설정 정보
4. mapper.xml 파일 생성
👉 2) SqlSession 객체를 생성하여 쿼리문을 실행한다.
👉 3) 데이터의 개수에 따라 메서드를 다르게 사용하여 데이터를 조회한다.
1. 한개의 데이터를 조회할 경우 .selectOne() 메서드를 사용한다.
2. 한개 이상의 데이터를 조회할 경우 .selectList() 메서드를 사용하며 반환데이터는 List로 받을 수 있다.
※mapper파일에서의 resultType을 List로 사용하지 않고 selectList() 메서드로 List를 처리한다.※
👉 DAO에서 dto와 selectList로 DB로부터 여러개의 데이터를 조회
public void selectAllData() {
System.out.println("\n selectAll \n");
List<OrderDto> orderList = sqlSession.selectList("order.selectAll");
for (OrderDto orderDto : orderList) {
System.out.println("memberId : " + orderDto.getMemberId());
System.out.println("orderId : " + orderDto.getOrderId());
System.out.println("productCode : " + orderDto.getProductCode());
System.out.println("productName : " + orderDto.getProductName());
System.out.println("productPrice: " + orderDto.getProductPrice());
System.out.println("orderCount: " + orderDto.getOrderCount());
System.out.println("totalPrice: " + orderDto.getTotalPrice());
System.out.println("orderDate: " + orderDto.getOrderDate());
System.out.println();
}
}
👉 DAO에서 selectOne로 DB로부터 한개의 데이터를 조회
public void selectData1() {
System.out.println("\n selectData1 \n");
int result = sqlSession.selectOne("order.select1");
System.out.println("selectData1 : " + result);
}
👉 DAO에서 hashmap과 selectList를 이용해서 DB로부터 여러개의 데이터를 조회
public void selectData3() {
System.out.println("\n selectData3 \n");
List<Map<String, Object>> orderList = sqlSession.selectList("order.select3");
// 뒤에 Object인 이유는 글자/숫자 등 어떤 값이 들어올지 모르기 때문에
for (Map<String, Object> orderMap : orderList) {
System.out.println("memberId : " + orderMap.get("memberId"));
System.out.println("orderId : " + orderMap.get("orderId"));
System.out.println("productCode : " + orderMap.get("productCode"));
System.out.println("productName : " + orderMap.get("productName"));
System.out.println("productPrice : " + orderMap.get("productPrice"));
System.out.println("tax : " + orderMap.get("tax"));
System.out.println("afterTax : " + orderMap.get("afterTax"));
System.out.println("orderCount : " + orderMap.get("orderCount"));
System.out.println("orderDate : " + orderMap.get("orderDate"));
System.out.println("imageName : " + orderMap.get("imageName"));
System.out.println("imageType : " + orderMap.get("imageType"));
System.out.println("fileSize : " + orderMap.get("fileSize"));
System.out.println();
}
}
👉 1) 2개 이상의 파라미터를 mapper로 전달할 수 없고 오직 1개의 파라미터만 전송이 가능하다.
👉 2) 2개 이상의 데이터는 Dto , Map형식으로 전송한다.
👉 3) 사용하고자 하는 쿼리문에 따라 달라지는 메서드
👉 단일 데이터 전송
public void insertSingleData(String memberId) {
sqlSession.insert("order.insertSingleData" , memberId);
}
👉 DTO전송
public void insertDto(OrderDto orderDto) {
sqlSession.insert("order.inserDto" , orderDto);
}
👉 MAP전송
public void insertMap(Map<String, String> orderMap) {
sqlSession.insert("order.insertMap" , orderMap);
}