인프런 커뮤니티 질문&답변

mins199600님의 프로필 이미지
mins199600

작성한 질문수

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

Thymeleaf -> Jsp 컨버젼

오류가 이렇게 뜨는데

작성

·

58

0

<?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="hello.sailing_jsp.v2.dao.MenuDaoV2">

    <!--조회-->
    <select id="doList" resultType="hello.sailing_jsp.v2.vo.Coffee_menu">
        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>

    <!--검색에 의한 쿼리-->
    <select id="doSearch" resultType="hello.sailing_jsp.v2.vo.Coffee_menu">
    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
    where 1=1
        and reg_day >= date_format( #{strStartDate}, '%Y,%m,%d')
        and reg_day &lt; date_add(date_format(#{strEndDate}, '%Y,%m,%d'), interval +1 day)
            <if test="strCoffee != 'ALL'">
                and coffee like concat('%',#{strCoffee},'%')
            </if>
            <if test="strKind != 'ALL'">
            and kind = #{strKind}
            </if>
</select>

    <!--메뉴조회-->
    <select id="doListOne" resultType="java.util.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
        where no = cast(#{strNo} as Integer)
    </select>


    <insert id="doInsert">
        Insert Into coffee_menu(coffee,kind,price)
        values(#{coffee},#{kind},cast(#{price} as Integer))
    </insert>

    <update id="doUpdate">
        update coffee_menu set
            coffee = #{coffee},
            kind = #{kind},
            price = cast(#{price} as Integer)
        where no = cast(#{no} as Integer)
    </update>

    <delete id="doDelete">
        Delete from coffee_menu where no = cast(#{strNo} as Integer)
    </delete>

    <!--메뉴 가격 수정 입력-->
    <update id="doUpdatePrice">
        update coffee_menu set
            price = cast(#{strPrice} as integer)
        where no = cast(#{strNo} as integer)
    </update>

    <!--가격 로그 입력-->
    <insert id="doInsertLog">
        insert into coffee_menu_log(coffee_no, price)
        values( #{strNo}, cast(#{strPrice} as integer) )
    </insert>


    <!--메뉴 가격 수정 원쿼리로 처리-->
    <update id="doUpdatePriceOne">
        update coffee_menu set
        price = cast(#{strPrice} as integer)
        <where>
            <foreach item="item" index="index" collection="chkList" open="no in (" separator="," close=")" nullable="true">
                #{item}
            </foreach>
        </where>
    </update>

    <!--가격 로그 입력 원쿼리-->
    <insert id="doInsertLogOne">
        insert into coffee_menu_log(coffee_no, price)
        <foreach item="item" index="index" collection="chkList" separator="union all" nullable="true">
            select #{item}, cast(#{strPrice} as integer) from dual
        </foreach>
    </insert>

    <!--boot 로그 입력-->
    <insert id="doBootLog">
        insert into boot_log (class)
        values( #{strClass} )
    </insert>

</mapper>

 

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bootlog': Unsatisfied dependency expressed through field 'menuDaoV2'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'menuDaoV2' defined in file [C:\Users\mins1\OneDrive\Desktop\Sailing_jsp\build\classes\java\main\com\boot\sailing_jsp\v2\dao\MenuDaoV2.class]: Cannot resolve reference to bean 'sqlSessionTemplate' while setting bean property 'sqlSessionTemplate'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sqlSessionTemplate' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Unsatisfied dependency expressed through method 'sqlSessionTemplate' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is java.io.IOException: Failed to parse mapping resource: 'file [C:\Users\mins1\OneDrive\Desktop\Sailing_jsp\build\resources\main\sqlmapper\v2\CoffeeMenuV2.xml]'

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. mins199600님.

현재 발생하는 오류는 MyBatis의 Mapper XML 파일(CoffeeMenuV2.xml)에서 문제가 발생하여 SqlSessionFactory 생성에 실패한 것으로 보입니다. 주로 XML 파일의 경로 오류나 XML 문법 문제로 인해 발생합니다. 아래에서 해결 방법을 제안드립니다.

주요 해결 방법

  1. XML 경로 확인:

    • 오류 메시지를 보면 CoffeeMenuV2.xml이 잘못된 경로에 있거나, 경로가 올바르지 않을 가능성이 큽니다. 이 파일이 src/main/resources/sqlmapper/v2 경로에 정확히 위치해 있는지 확인하세요.
  2. XML 파싱 오류:

    • XML 파일의 문법 오류가 있는지 확인하세요. <if><foreach> 등의 태그가 제대로 닫혀 있는지, 또는 특수 문자가 제대로 인코딩되어 있는지 확인하시기 바랍니다.
  3. Mapper 등록 여부 확인:

    • MenuDaoV2에 해당되는 Mapper가 Spring Boot에 의해 제대로 등록되어 있는지 확인해야 합니다. @MapperScan("com.boot.sailing_jsp.v2.dao") 어노테이션이 SpringBootApplication 클래스에 적용되어 있는지 확인합니다.
  4. Logback 설정 확인:

    • SQL 로그 등을 확인하기 위한 Logback 설정이 되어 있는지도 살펴보세요. 로그를 참고하여 어떤 단계에서 문제가 발생하는지 확인할 수 있습니다.

이 문제와 유사한 다른 사례들이 포함된 질문을 참조하시면서 문제를 해결하시기를 권합니다. 관련된 질문은 다음과 같습니다:

근본적인 문제 해결 방법을 위해 위의 체크리스트를 따라가며 문제를 해결해보세요. 이해가 어려우시다면 추가적인 정보나 오류 로그를 제공해주시면 더 세부적으로 도와드리겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mins199600님의 프로필 이미지
mins199600
질문자

오! 감사합니다!! 경로문제였어요!!

mins199600님의 프로필 이미지
mins199600

작성한 질문수

질문하기