20/11/3

8. 상세페이지 뿌려주기

db내용 메모

[x]1) index.jsp를 새로 만들어서 에 새로운 요청명령어 등록 : 상품 상세페이지 요청

[x]2) web.xml 할일없음

ㄱ.

[x]3) board-servlet.xml에서 요청명령어에 따라 처리해주는 DetailActionController 설정

4) DetailActionController 제작

[x]ㄱ. 어노테이션 @Controller, @Autowired(Board dao), @RequestMapping("/detail.do") 설정

ㄱ-1. 에러발생 controller is not an annotation type https://galid1.tistory.com/506 ▶ import부분 삭제

[x]ㄴ. dao의 내용을 list에 담아옴

[x]ㄷ. modelandView를 통해 전달

[x]ㄹ. return함

5) detail.jsp 에서 뿌려줌

[x]ㄱ. list를 getAttriube 하여 받아옴

[x]ㄴ. while문을 통해 dto의 내용을 받아옴

[x]**추가** 레코드를 가져올 dto가 BoardCommand가 아니라, DetailCommand이다!

[x]ㄷ. getter메서드로 가져옴

[x]ㄹ. jsp에 뿌려줌

[]6) dataAccessContext-local.xml 할 일 없음

[]7) SqlMapConfig.xml 할 일 없음

**추가**

SqlMapConfig.xml에서 테이블별로 <mapper> 태그로 추가해야한다.

[x]그렇단 얘기는 Board.xml도 새로 만들어야하는 것이고

[x]DetailCommand도 새로 만들어야하는 것이고

[x]BoardDAO 인터페이스도 작성해야하고

[x]ㄴ를 상속받은 Dao를 작성해야한다.

간단한 crud이므로 Mybatis2로 작성해보도록한다.

 

근데 Mybatis2로 작성하면 전부다 Mybatis2로 작성해야한다고한다. (두개짬뽕이 불가능하다)

Mybatis2는 sql구문도 그대로 작성할 수 있는 이점이 있고, 환경설정이 쉬우므로 Mybatis2로 진행하기로한다.

그러기위해서는 기존 파일을 Mybatis2로 수정해야한다.

 

9. Mybatis2로 전환하기 20/10/28(14) 2. SpringMember.war (mybatis2, @insert... , 페이징처리)

환경설정이 잘 될지 알수 없으므로, 리스트 보기까지 수행했던 백업파일 MyTest3에서 Mybatis2로의 진행을 진행한다.

Mybatis2란? xml을 파일로 불러오지 않는 환경설정을 말한다! ~Dao에서 sql구문의 결과를 받아서 처리한다!

해야할 일

1. dataAccessContext-local.xml에서

[x]ㄱ.<property>(값을 WEB-INF/SqlMapConfig.xml로 가지는) 태그 삭제

[x]ㄴ.SqlSessionTemplate 빈즈를 삭제한다.

[x]ㄷ.코드추가(이 Dao는 sql구문이 적힐 파일을 말한다)

<bean id="memberDao" class="org.mybatis.spring.mapper.MapperFactoryBean">

       <property name="sqlSessionFactory" ref="sqlSessionFactory" />

       <property name="mapperInterface" value="dr.mini.dao.MemberDao" />

</bean>

[]3. impl과 SqlMapCong.xml파일(쿼리문 적힌 xml파일을 로드하는 파일), Board.xml이 삭제되고(필요가없다)

[x]4.memberDao(인터페이스)에 Board.xml에 적었던 @Select 등의 어노테이션을 사용해서 쿼리문을 작성한다.

 

▷ 500에러로 DI에 실패했다는 에러가 뜨는데 어떻게 고쳐야할지모르겠다... MyTest3파일 . 강사님께 여쭤본다.

 


 

뭘..햇는지 햇갈리는데.. 환경설정을 잔뜩 했어요...

 

에러 발생 (xml파일의 id값에 부주의해서 생긴 에러)

threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException

mapper에서 같은 id를 사용할경우 나는 에러라고한다.

https://m.blog.naver.com/PostView.nhn?blogId=soseoga&logNo=221233913329&proxyReferer=https:%2F%2Fwww.google.com%2F

Detail.xml 의 id를 list2로 변경

▶DetailDAO(임플리멘트)를 list2로 변경

▶SqlMapDetail(상속받은애)의 id를 list2로 변경

▶DetailActionController의 list2로변경

 

컨트롤러는 모두 무사히 통과되었고, Null 떨어짐

 


 

11/4

목표 1. : 상품 정보를 화면에 뿌린다.

목표 2. :