일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자바스크립트
- java
- IndexedDB
- MYSQL
- 상태값 저장 유지
- open in browser
- @requstbody
- Eclipse
- html
- tomcat
- ui인터페이스
- vscode
- 실시간 상태값 저장
- 초보 개발자
- 게시판
- resutful api
- vsc
- 데이터 시각화
- thymeleaf
- github
- chart.js
- git
- 여러 종류의 사용자 정의 함수
- chart.js 라이브러리
- css
- 자바빈
- JavaScript
- 자바
- jsp
- spring boot
Archives
- Today
- Total
수월한 IT
7. 상세보기 본문
728x90
목록에서 한건의 serial 번호를 받아와 해당 자료를 표시합니다.
package bean; import java.io.File; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SnDao { String uploadPath = "N:\\workspace\\summernote\\src\\main\\webapp\\"; Connection conn; PreparedStatement ps; ResultSet rs; String sql; public SnDao() { try { conn = new DBConn().getConn(); } catch (Exception ex) { ex.printStackTrace(); } } public boolean insert(SnVo vo) { boolean b = false; sql = "insert into summernote(subject, doc) values(?,?)"; try { conn.setAutoCommit(false); ps = conn.prepareStatement(sql); ps.setString(1, vo.getSubject()); ps.setString(2, vo.getDoc()); int c = ps.executeUpdate(); if (c > 0) { conn.commit(); b = true; } else { conn.rollback(); } } catch (Exception ex) { ex.printStackTrace(); } return b; } public boolean modify(SnVo vo) { boolean b = false; sql = "update summernote set subject=? , doc=? where serial = ? "; try { conn.setAutoCommit(false); ps = conn.prepareStatement(sql); ps.setString(1, vo.getSubject()); ps.setString(2, vo.getDoc()); ps.setInt(3, vo.getSerial()); int c = ps.executeUpdate(); if (c > 0) { conn.commit(); b = true; } else { conn.rollback(); } } catch (Exception ex) { ex.printStackTrace(); } return b; } public boolean delete(String serial) { boolean b = false; // img 태그안에 있는 파일명을 찾기 위한 패턴 String regex = "(<img src=\")(.+?)(\")"; Pattern pattern = Pattern.compile(regex); Matcher matcher = null; try { // 삭제해야할 파일명을 찾기 위해 SnVo vo = view(serial); // doc 안에 있는 img 태그 정보를 가져와 파일 삭제 matcher = pattern.matcher(vo.getDoc()); sql = "delete from summernote where serial = " + serial; conn.setAutoCommit(false); ps = conn.prepareStatement(sql); int c = ps.executeUpdate(); if (c > 0) { conn.commit(); b = true; // upload 경로에 있는 파일 삭제 while (matcher.find()) { File delFile = new File(uploadPath + matcher.group(2)); if (delFile.exists()) delFile.delete(); } } else { conn.rollback(); } } catch (Exception ex) { ex.printStackTrace(); } return b; } public List<SnVo> select(String findStr) { List<SnVo> list = new ArrayList<SnVo>(); sql = "select * from summernote where subject like ? order by serial desc"; try { ps = conn.prepareStatement(sql); ps.setString(1, "%" + findStr + "%"); rs = ps.executeQuery(); while (rs.next()) { SnVo vo = new SnVo(); vo.setSerial(rs.getInt("serial")); vo.setSubject(rs.getString("subject")); list.add(vo); } } catch (Exception ex) { ex.printStackTrace(); } return list; } public SnVo view(String serial) { SnVo vo = new SnVo(); sql = "select * from summernote where serial = ? "; try { ps = conn.prepareStatement(sql); ps.setString(1, serial); rs = ps.executeQuery(); while (rs.next()) { vo.setSerial(rs.getInt("serial")); vo.setSubject(rs.getString("subject")); vo.setDoc(rs.getString("doc")); } } catch (Exception ex) { ex.printStackTrace(); } return vo; } }
1) 상세 보기 페이지
<%@page import="bean.SnVo"%> <%@page import="bean.SnDao"%> <%@page import="bean.DBConn"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <link rel='stylesheet' type='text/css' href='./css/sn.css'> </head> <body> <% request.setCharacterEncoding("utf-8"); SnDao dao = new SnDao(); String serial = request.getParameter("serial"); SnVo vo = dao.view(serial); %> <div id='list'> <h1>상세보기</h1> <div class='item'> <div class='serial'>serial : <%=vo.getSerial()%></div> <div class='subject'><%=vo.getSubject() %></div> <div class='doc'><%=vo.getDoc() %></div> </a> </div> <hr/> <a href='modify.jsp?serial=<%=vo.getSerial()%>'>수정하기</a> <a href='delete.jsp?serial=<%=vo.getSerial()%>'>삭제하기</a> <a href='list.jsp'>목록으로</a> </div> </body> </html>
'프로젝트 > Summernote를 활용한 WYSIWYG 게시판 만들기' 카테고리의 다른 글
2. 기본 구조 (0) | 2023.01.01 |
---|---|
3. 에디터 화면 및 저장 만들기 (0) | 2023.01.01 |
4. 수정하기 (0) | 2023.01.01 |
5. 삭제하기 (0) | 2023.01.01 |
6. 조회하기 (0) | 2023.01.01 |