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"; }