1월 25일 스프링

jyp·2023년 1월 25일
0

학원

목록 보기
34/57
post-thumbnail

concat : 문자열을 합치는 것
검색기능 만들때 자주 사용 하는거 같음

select concat('아이디 : ', userid) , concat('이름 : ',name) from member;
아이디 : sofina , 이름 : 소피나

select * from board where title like concat('%','1234','%');
위 실행문은 타이틀에 1234가 포함된 글을 가져와라

caption 이용해서 테이블 안에 검색창 만들기

<caption>
	<form method="post" action="list">
		<select name="cla">
			<option value="title"> 제목 </option>
			<option value="content"> 내용 </option>
			<option value="name"> 이름 </option>
		</select>
		<input type="text" name="search" size="10">
		<input type="submit" value="검색">
	</form>
</caption>

sql 실행문 검색
#은 값에 '값' 따옴표가 붙기 때문에 필드명에 사용할땐 $를 붙여줘서 따옴표를 없이 사용해야함

예)
select *from board where 필드명 list '%검색어%' order by id desc

위는 concat을 사용하지 않을때 예시이고 사용할땐 아래

select *from board where ${param1} like concat('%',#{param2},'%') order by id desc

BoardController list 처리
request로 cla값과 search 값을 받았기 때문에
맨 처음에 실행 했을때 list에 request값이 null이라 오류가 뜬다
그래서 밑에서 처럼 null일 경우 빈칸으로 처리하게 만들어서 전부 다 검색해
첫 list 페이지를 완성한다

@RequestMapping("/list")
public String list(Model model,HttpServletRequest request)
{
	BoardDao bdao = sqlSession.getMapper(BoardDao.class);
	
	String cla="title";
	if(request.getParameter("cla")!=null)
		cla = request.getParameter("cla");
		
	String search = "";
	if(request.getParameter("search")!=null)
		search = request.getParameter("search");
		
	model.addAttribute("list",bdao.list(cla,search));
	return "/list";
}

사진 첨부 request와 dto로 각각 처리 하기
write_ok(request),write_ok2(dto) 처리

public void write_ok(String title, String content, String fname);
public void write_ok2(TourDto tdto);
<insert id="write_ok">
	insert into tour(title,content,fname,writeday)
	values(#{param1},#{param2},#{param3},now())
</insert>

<insert id="write_ok2" parameterType="kr.co.tour.dto.TourDto">
	insert into tour(title,content,fname,writeday)
	values(#{title},#{content},#{fname},now())
</insert>
@RequestMapping("/write_ok")
public String write_ok(HttpServletRequest request) throws Exception
{
	// String path = request.getRealPath(resources/img);
	String path = request.getRealPath("/WEB-INF/views/img/");
	int size=1024*1024*10;
	
	MultipartRequest multi = new MultipartRequest(request,path,size,"utf-8",new DefaultFileRenamePolicy());
	
	String title = multi.getParameter("title");
	String content = multi.getParameter("content");
	String fname = multi.getFilesystemName("fname");
	
	TourDao tdao = sqlSession.getMapper(TourDao.class);
	//tdao.write_ok(title,content,fname);
	
	TourDto tdto = new TourDto();
	tdto.setTitle(title);
	tdto.setContent(content);
	tdto.setFname(fname);
	
	tdao.write_ok2(tdto);
	
	return "redirect:/list";
}
profile
국비 코딩

0개의 댓글