list 만들고 검색 기능

조수경·2022년 2월 3일
0

Spring

목록 보기
9/43

sql.xml

<!-- 책 목록 -->
	<!-- 스프링에서 "_"를 사용한 컬럼명을 사용 시 테이블 컬럼명에 "_"가 있을 경우 카멜케이스로 읽어줌 -->
	<!-- 
		map : {keyword=이방원}
		
	    WHERE 1 = 1은 관습적인 구문. 1=1은 항상 TRUE이고
	    -조건이 2개 이상일 경우 처음 시작하는 조건은 WHERE로 시작하고 
	         두번째로 시작하는 조건은 AND여야 함 (그래서 밑에 말도안되는 where 1 = 1를 넣어준거임!!)
	    -매번 첫 번째 조건인지 검사하는 것은 번거롭기 때문에 무조건 WHERE 1 = 1 을 써 둔 후
	  	  나머지 조건을 AND로 이어붙임
	    - 동적쿼리 : 쿼리의 내용이 파라미터가 아니라 마이바티스의 규칙에 의해 변경되는 것
	     
	 -->
	<select id="list" parameterType="hashMap" resultType="bookVO">
		select BOOK_ID,TITLE,CATEGORY,PRICE,INSERT_DATE
		from book
		where 1 = 1 
		<if test="keyword!=null and keyword!=''">
			AND (TITLE   LIKE '%' || #{keyword} || '%' OR
				CATEGORY LIKE '%' || #{keyword} || '%')
		</if>
		order by book_id desc
	</select>	

dao

//책 목록(던질 파라미터가 없기 때문에 받아줄 파라미터도 필요없음)
	//map : {"keyword", "방원"}
	public List<BookVO> list(Map<String, Object> map) {
		//sqlSessionTemplate는 root-context에서 온 놈
		//namespace.id = book.list
		//.selectList() 메소드는 결과 집합 목록을 가져올때 사용 
		//List 타입으로 읽어 들 일 수 있음
        
		return sqlSessionTemplate.selectList("book.list", map);
	}

serviceImpl

//책 목록
	@Override
	public List<BookVO> list(Map<String, Object> map) {
		return this.bookDao.list(map);
	}

service

//book 목록보기
	public List<BookVO> list(Map<String, Object> map);

controller

//localhost:8090/list?keyword=이방원
	//리스트 뽑기
	//메핑에 의해서
	//map : {"keyword":"이방원"} //키 : 값
	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public ModelAndView list(ModelAndView mav,
			@RequestParam Map<String, Object> map) {//mav에
		//스프링은 인터페이스를 좋아해서~~ bookService를 불러야함!
		List<BookVO> list = this.bookService.list(map);
		
		//데이터를 VIEW에 전달할 수 있도록 mav 객체에 add함
		mav.addObject("data",list);//data가 list로 넘어가는것!!
		//forwarding
		mav.setViewName("book/list");//리스트를 넣어줌
		return mav;//mav리턴
	}
profile
신입 개발자 입니다!!!

0개의 댓글