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

현성님의 프로필 이미지
현성

작성한 질문수

자바 스프링부트 활용 웹개발 실무용

E02 lombok설치 + Mybatis 설정 + 간단한 게시판 Api 구현

2강 Board.xml에 만들 때 오류를 어떻게 해결해야 하나

작성

·

7.5K

0

<?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="com.example.demo.mvc.repository.BoardRepository">
	<select id="getList" parameterType="com.example.demo.mvc.domain.Board" resultType="com.example.demo.mvc.domain.Board">
		SELECT
		B.BOARD_SEQ,
		B.TITLE,
		B.CONTENTS,
		B.REG_DATE
		FROM T_BOARD B
		ORDER BY B.REG_DATE DESC
	</select>

	<select id="get" parameterType="com.example.demo.mvc.domain.Board" resultType="com.example.demo.mvc.domain.Board">
		SELECT
		B.BOARD_SEQ,
		B.TITLE,
		B.CONTENTS,
		B.REG_DATE
		FROM T_BOARD B
		WHERE B.BOARD_SEQ = #{boardSeq}
	</select>

	<insert id="save" parameterType="com.example.demo.mvc.domain.Board">
		INSERT INTO T_BOARD
		(
			TITLE,
			CONTENTS,
			REG_DATE
		)
		VALUES
		(
			#{title},
			#{contents},
			NOW()
		)
	</insert>

	<update id="update" parameterType="com.example.demo.mvc.domain.Board">
		UPDATE T_BOARD
		SET
			TITLE = #{title},
			CONTENTS = #{contents}
		WHERE BOARD_SEQ = #{boardSeq}
	</update>

	<delete id="delete" parameterType="com.example.demo.mvc.domain.Board">
		DELETE FROM T_BOARD
		WHERE BOARD_SEQ = #{boardSeq}
	</delete>
</mapper>

이 코드에서

http://mybatis.org/dtd/mybatis-3-mapper.dtd 이부분에서는 Downloading external resources is disabled. 라는 오류가 나오고요

 

<mapper> 부분에서는

Element type "mapper" must be declared. 라는 오류가 나오

 

<select> 부분도

Element type "select" must be declared. 라는 오류가 나옵니다

 

어떻게 해결해야 하지요?

 

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.
질문 주신 내용을 보면, Board.xml 파일을 작성하면서 오류가 발생한다고 하셨군요.

XML에서 DTD(DocType Definition)는 해당 XML의 구조를 정의하는데 사용되는 문서입니다. DTD는 인터넷을 통해 다운로드 받아 사용할 수도 있습니다.
하지만, DTD의 URL인 “http://mybatis.org/dtd/mybatis-3-mapper.dtd”은 접근하려고 하니까 문제가 있어요. 이 부분에서 오류가 발생한 것 같습니다.

해결책으로는 3가지가 있습니다.
1. 인터넷에 접속할 수 있는 환경에서 XML을 작성하고 싶다면, 해당 URL에 접근 가능한 환경을 설정하세요.
2. 인터넷에 접속할 수 없는 환경이라면, 다운로드 받은 DTD 파일을 로컬 경로에 저장하고, 아래와 같이 DOCTYPE을 수정해주세요.

<!DOCTYPE mapper SYSTEM "path/to/mybatis-3-mapper.dtd">
  1. DTD 없이 XML을 작성하고 싶다면, DOCTYPE 선언을 아래와 같이 제거해주세요.
<!DOCTYPE mapper>

편집하신 후 다시 코드를 실행해보세요. 이렇게 하면 오류가 해결될 것입니다.
더 궁금한 점이 있으면 언제든지 물어보세요. 좋은 결과가 있기를 바랄게요.

현성님의 프로필 이미지
현성

작성한 질문수

질문하기