inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 부트 웹 개발 입문 - 따라하며 배우기

MyBatis 환경 설정 & 조회하기까지 (select)

mybatis 조회하기(7-2강) 실습시 오류가 발생합니다.

해결된 질문

431

조윤지

작성한 질문수 1

0

안녕하세요. 강의대로 실습한 후 실행시 오류가 발생해서 질문드립니다.

맥에서 실습중이기 때문에 하이디sql 사용이 불가하여 sequel pro로 대체하여 mariadb를 이용하고있는데, 이부분에서 연결이 잘못된 건지, 아니면 제가 실습을 따라가다 다른 실수가 있었던 건지 잘 모르겠습니다.

다른 분들께서 하신 질문들과 구글링 했을 때 제 생각에는 그래도 DB연결은 된 것 같은데 어떤 부분을 수정해야 할 지 도와주시면 감사하겠습니다.

 

오류 내용 :

Invalid bound statement (not found): com.boot.sailing.v1.dao.MenuDao.doList

 

[MenuCon]

package com.boot.sailing.v1.controller;

import com.boot.sailing.v1.service.MenuSvc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
public class MenuCon {

    @Autowired
    MenuSvc menuSvc;

    @RequestMapping("/v1/menu")
    public String doMenu(Model model){

        // Data 만들기 , List , Map
        List<Map<String, Object>> list = menuSvc.doList();

        // Data 송부
        model.addAttribute("list", list);
        model.addAttribute("hello", " ========== MenuCon ======== ");

        return "/v1/menu/menu";
    }

}

 

[CoffeeMenu.xml]

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.boot.sailing.v1.dao.MenuDao">
    <!-- 메뉴조회 -->
    <select id="doList" resultType="map">
        SELECT no, coffee, kind, price,
            DATE_FORMAT(reg_day,"%Y, %m, %d") AS reg_day,
            DATE_FORMAT(mod_day,"%Y, %m, %d") AS mod_day
        FROM coffee_menu;
    </select>
</mapper>

 

[MenuSvc]


package com.boot.sailing.v1.service;

import com.boot.sailing.v1.dao.MenuDao;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
@Log4j2
public class MenuSvc {

    @Autowired
    MenuDao menuDao;

    public MenuSvc() {
        log.info("================ MenuSvc , 생성자 ===================");
    }

    public List<Map<String, Object>> doList(){
        List<Map<String, Object>> list = menuDao.doList();

        log.info(list);

        return list;
    }

}

 

[application.yaml]

spring:
  datasource:
    driver-class-name: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/boot
    username: boot
    password: boot

--- # Configuration mybatis
mybatis:
  mapper-locations: classpath:sqlmapper/**/*.xml

 

[MenuDao]

package com.boot.sailing.v1.dao;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface MenuDao {
    List<Map<String, Object>> doList();


}

 

 

스크린샷 2023-09-28 오후 5.55.44.png스크린샷 2023-09-28 오후 5.57.10.png

spring mvc spring-boot

답변 1

0

IT늦공 김부장

안녕하세요.

제가 밖에있어서 집에가면 바로 확인해볼게요.

지금까지 경험상 전체소스를 zip 파일로 압축해서 구글클라우드 같은곳에 올려주시면 제가 다운받아서 확인하는게 가장 좋은 방법인것 같습니다.

위 오류 Invalid bound statement (not found) 가 발생하는 가장 원천적인 부분을 이야기해보면
경로 - 즉 mapper .xml 의 위치가 환경 파일과 맞지 않을경우가 대부분일 정도로 경로상의 문제가 많았습니다.

0

조윤지

https://drive.google.com/file/d/12xhr_cdt2dAi4Z5IM2aDcR4yv6_yAJ7J/view?usp=drive_link

 

구글 드라이브에 올려두었습니다. 천천히 여유 있으실 때 확인 부탁드리겠습니다!

0

IT늦공 김부장

소스를 보는데 아직 돌려보지 않았지만..
resources>sqlmapper.v1 => v1이 하위폴더가 아닌 sqlmapper.v1 이 자체가 폴더이름으로 되어 있네요.
이런경우가 흔해서 아마도 이문제이지 않을까 생각됩니다.
해당 소스에 가셔서 v1을 하위 폴더에 위치시키면 될듯한데요.
인텔리제이 사용중 간혹 일어나는 해프닝입니다.

 

위 내용 적용해서 실행해보니 잘 실행이 되네요.

인텔리제이 화면에서 compact ~~ 부분이 체크되면 하위 폴더가 sqlmapper.v1 으로 보여서 이게 하위 디렉토리인지

아님 디렉토리명인지 헷갈리는 경우가 생기더라구요. 체크를 빼면 명확히 보실 수 있습니다.
image

0

조윤지

아 네! 방금 실행해봤는데 제대로 잘 돌아가네요... 감사합니다 선생님!!

이런 부분은 확인해 볼 생각을 못해봤는데 또 하나 배웠습니다 ㅎㅎ

연휴날인데도 도와주셔서 정말 감사합니다! 풍성한 한가위 되세요!!

1

IT늦공 김부장

이렇게 추석 연휴에 공부하시는 분도 계신데요 ~ ^^
연휴 잘 보내세요 ~

마이바티스 환경설정 조회하기 강의 부분에서 메뉴부분에러

0

59

2

자바 8버전이 선택지에 없는데 어떻게 하죠

0

71

2

zip파일 다운받아서 풀었는데도 계속 오류가 생기네요

0

182

2

가격 수정만 자꾸 에러페이지로 갑니다...ㅜ

0

267

2

오류가 이렇게 뜨는데

0

498

1

타임리프 > jsp

0

97

1

File imprt 어떤거 해야하죠?

0

129

1

검색기능이 안됩니다

0

142

2

검색기능이 안됩니다

0

174

3

500에러

0

169

2

v2 객체 만드는중 입니다

0

126

2

오류가 자꾸 나는데 왜이러는 걸까요?ㅠㅠ

0

239

5

오류가 왜 나는건지 모르겠어요

0

150

2

스프링 부트 버전

0

169

2

log.info가 적용이 안되는 문제

0

174

1

Spring Boot에서 jsp 연동 오류

0

317

1

7장 insert mapper erro 문의합니다

1

246

2

선생님 혹시 파일업로드도 알려주실수있나여?

2

594

1

선생님 혹시 세션하고 쿠키 부분 언제쯤 올려주실수있나여?

1

195

1

스프링 부트 2.x 버전 지원 중단, myBatis 추가가 안돼요

0

880

1

커뮤니티 버전에서 스프링 부트를 선택할수 없습니다.

1

347

1

안녕하세요 Ajax강의 잘듣고있습니다. 다름이 아니라 Ajax로 검색할떄 시작일이나 종료일 고객명과 같은 검색조건을 어떻게 구현해야하는지 고민을해보다 질문드립니다.

1

349

2

DB 생성시 발생 에러 관련! "Can't create table" "Error No 150. "Foreign key constraint is incorrectly formed")

1

528

0

int i = menuService.doInsert(coffee,kind,price); 이 코드 질문있어요

1

376

1