SPRING BOOT 사용자인데요. Invalid bound statement (not found) 에러가 발생합니다...

조회수 1054회

에러 내용입니다. 구글링해서 아무리 찾아도 안됩니다.. 도와주십시오..

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): kr.sulitech.study.board.service.ArticleService.listAll

소스코드입니다.

ArticleMapper.xml 파일 코드

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.sulitech.study.board.service">

    <insert id="create">
        INSERT INTO tbl_article (
            article_no
            , title
            , content
            , writer
            , regdate
            , viewcnt
        ) VALUES (
            #{articleNo}
            , #{title}
            , #{content}
            , #{writer}
            , #{regDate}
            , #{viewCnt}
        )
    </insert>

<select id="read" resultMap="ArticleResultMap">
        SELECT
            article_no
            , title
            , content
            , writer
            , regdate
            , viewcnt
        FROM
            tbl_article
        WHERE article_no = #{articleNo}
    </select>

    <update id="update">
        UPDATE tbl_article
        SET
            title = #{title}
            , content = #{content}
        WHERE
            article_no = #{articleNo}
    </update>

    <delete id="delete">
        DELETE FROM tbl_article
        WHERE article_no = #{articleNO}
    </delete>
    <!-- CDATA안에  들어가는 문장을 문자열로 인식하게 되어서  SQL문 안에 특수문자가 들어가도 문자열로 인식 -->
     <select id="listAll" resultType="kr.sulitech.study.board.domain.ArticleVO">
        <![CDATA[
        SELECT
            article_no,
            title,
            content,
            writer,
            regdate,
            viewcnt
        FROM tbl_article
        WHERE article_no > 0
        ORDER BY article_no DESC, regdate DESC
        ]]>
    </select>
    <!-- ResultMap은 자바 변수명과 DB 칼럼명을 일치시킬 때 쓰고 SQL Aliases를 사용해 칼럼명 AS 필드명 같은 형식으로 SQL을 작성해주면 된다. -->
    <resultMap id="ArticleResultMap" type="kr.sulitech.study.board.domain.ArticleVO">
        <id property="articleNo" column="article_no"/>
        <result property="title" column="title"/>
        <result property="content" column="content"/>
        <result property="writer" column="writer"/>
        <result property="regDate" column="regdate"/>
        <result property="viewCnt" column="viewcnt"/>
    </resultMap>
</mapper>

ArticleService.java 인터페이스 코드

package kr.sulitech.study.board.service;

import java.util.List;

import kr.sulitech.study.board.domain.ArticleVO;

public interface ArticleService {
    void create(ArticleVO aricleVO) throws Exception;

    ArticleVO read(Integer articleNo) throws Exception;

    void update(ArticleVO articleVO) throws Exception;

    void delete(Integer articleNo) throws Exception;

    List<ArticleVO> listAll() throws Exception;
}

DatabaseConfiguration 설정파일 코드

package kr.sulitech.study.board.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Configuration
@ImportAutoConfiguration(DatabaseConfiguration.class)
@PropertySource("classpath:/application.properties")
public class DatabaseConfiguration {
    @Autowired
    private ApplicationContext applicationContext;

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/*.xml"));
        return sqlSessionFactoryBean.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
    public HikariConfig hikariConfig() {
        return new HikariConfig();
    }

    @Bean
    public DataSource dataSource() {
        DataSource dataSource = new HikariDataSource(hikariConfig());
        log.info("datasource : {}",  dataSource);
        return dataSource;
    }

}

이미지

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)