검색 화면을 추가하였다.
오라클에서 TO_CHAR을 사용해서 보기 좋게 뽑아냈다.
TO_CHAR(productPrice, 'fm9,999,999,999')
TO_CHAR(REGDATE, 'yyyy-mm-dd')
like로 찾을때는 쿼리문이 아닌pstmt.setString(1, "%"+serchProduct+"%");
여기에 넣기!<input id="serchProduct" name="serchProduct" type="text" value="${param.serchProduct }" oninvalid="this.setCustomValidity('뭘 찾을래?')" required/>
검색한 값이 검색 후 없어지지 않게 인풋의 벨류에 사용자가 입력한 값을 넣어주었다.
public ArrayList<ProductVO> serchProduct(String serchProduct) { int result = 0; String sql = "select productName, TO_CHAR(productPrice, 'fm9,999,999,999') productPrice, productType, TO_CHAR(REGDATE, 'yyyy-mm-dd') regdate from product where productname like ? order by productNum desc"; conn = db.getConnection(); ArrayList<ProductVO> list = new ArrayList<>(); try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, "%"+serchProduct+"%"); result = pstmt.executeUpdate(); // 검색이 안되면 어쩔건지? ResultSet rs = pstmt.executeQuery(); while (rs.next()) { ProductVO vo = new ProductVO(); vo.setProductName(rs.getString("productName")); vo.setProductPrice(rs.getString("productPrice")+"원"); vo.setProductType(rs.getString("productType")); vo.setRegdate(rs.getString("regdate")); list.add(vo); } pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return list; }
메인화면을 따로따로 만들고있는데 잘 하고있는거..겠지...
<header> <jsp:include page="header.jsp"></jsp:include> </header> <nav> <jsp:include page="nav.jsp"></jsp:include> </nav>