JSP

211019_jsp로 게시판 만들기

요옫 2021. 10. 19. 12:12

퀀텀db로 테이블 생성

 

 

MyinfoDto

package myinfo;

 

import java.sql.Timestamp;

 

public class MyinfoDto {

 

private String num;

private String name;

private String addr;

private Timestamp sdate;

 

//setter,getter

public String getNum() {

return num;

}

public void setNum(String num) {

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddr() {

return addr;

}

public void setAddr(String addr) {

this.addr = addr;

}

public Timestamp getSdate() {

return sdate;

}

public void setSdate(Timestamp sdate) {

this.sdate = sdate;

}

}

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

MyinfoDao

package myinfo;

 

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Vector;

 

import mysql.db.DbConnect;

 

public class MyinfoDao {

 

DbConnect db=new DbConnect();

 

//insert

public void infoInsert(MyinfoDto dto) {

Connection conn=db.getConnection();

PreparedStatement pstmt=null;

        

String sql="insert into myinfo values(null,?,?,now())";  //num자리 위해 null로 표시

 

try {

pstmt=conn.prepareStatement(sql);

 

//?바인딩

pstmt.setString(1, dto.getName());

pstmt.setString(2, dto.getAddr());

 

//실행

pstmt.execute();

 

} catch (SQLException e) {

} finally {

db.dbClose(pstmt, conn);

}

}

 

 

//전체 출력..조회이기에 resultset

public Vector<MyinfoDto> getAllDatas() {

Vector<MyinfoDto>list=new Vector<MyinfoDto>();

Connection conn=db.getConnection();

PreparedStatement pstmt=null;

ResultSet rs=null;

 

String sql="select * from myinfo order by num asc";

 

try {

pstmt=conn.prepareStatement(sql);

rs=pstmt.executeQuery();

 

//여러개 데이터 얻을 때는 while, 하나 얻을 땐 if

while(rs.next()) {

MyinfoDto dto=new MyinfoDto();

dto.setNum(rs.getString("num"));

dto.setName(rs.getString("name"));

dto.setAddr(rs.getString("addr"));

dto.setSdate(rs.getTimestamp("sdate"));

 

//벡터에 추가

list.add(dto);

}

} catch (SQLException e) {

} finally {

db.dbClose(rs, pstmt, conn);

} 

return list;

}

 

 

//수정에 필요한 num 넘기기

public MyinfoDto getData(String num) {

MyinfoDto dto=new MyinfoDto();

Connection conn=db.getConnection();

Statement stmt=null;

ResultSet rs=null;

 

String sql="select * from myinfo where num="+num;

 

try {

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

 

//수정하려는 하나의 데이터만 필요하므로 if

if(rs.next()) {

dto.setNum(rs.getString("num"));

dto.setName(rs.getString("name"));

dto.setAddr(rs.getString("addr"));

dto.setSdate(rs.getTimestamp("sdate"));

}

} catch (SQLException e) {

 

} finally {

db.dbClose(rs, stmt, conn);

}

return dto;

}

 

 

//실제 수정

public void infoUpdate(MyinfoDto dto) {

Connection conn=db.getConnection();

PreparedStatement pstmt=null;

 

String sql="update myinfo set name=?,addr=? where num=?";

 

try {

pstmt=conn.prepareStatement(sql);

 

//?바인딩

pstmt.setString(1, dto.getName());

pstmt.setString(2, dto.getAddr());

pstmt.setString(3, dto.getNum());

 

//실행

pstmt.execute();

 

} catch (SQLException e) {

} finally {

db.dbClose(pstmt, conn);

}

}

 

 

//삭제

public void infoDelete(String num) {

Connection conn=db.getConnection();

Statement stmt=null;

 

String sql="delete from myinfo where num="+num;

 

try {

stmt=conn.createStatement();

stmt.execute(sql);

 

} catch (SQLException e) {

} finally {

db.dbClose(stmt, conn);

}

}

}

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infolist.jsp

<%@page import="myinfo.MyinfoDto"%>

<%@page import="java.util.Vector"%>

<%@page import="myinfo.MyinfoDao"%>

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

 

<style type="text/css">

body* {

font-family: 'Nanum Pen Script';

font-size: 1.3em;

}

</style>

 

</head>

<body>

<%

MyinfoDao dao=new MyinfoDao();

Vector<MyinfoDto>list=dao.getAllDatas();

%>

 

<a href="infoinsertform.jsp"><button type="button" class="btn btn-info">데이터 추가</button></a>

<hr>

<table class="table table-bordered" style="width: 600px;">

  <caption><b>Myinfo 리스트</b></caption>

  <tr bgcolor="#ffe4e1">

    <th>No.</th>

    <th>이름</th>

    <th>주소</th>

    <th>날짜</th>

    <th>수정/삭제</th>

  </tr>

  

  <%

  for(int i=0;i<list.size();i++){

  MyinfoDto dto=list.get(i);

  %>

  <tr>

  <td align="center"><%=i+1 %></td>

  <td><%=dto.getName() %></td>

  <td><%=dto.getAddr() %></td>

  <td><%=dto.getSdate() %></td>

  <td>

<!-- 해당 번호만 지우기 위해서 조건 삽입..?num=<%=dto.getNum()%> -->  

  <a href="infoupdateform.jsp?num=<%=dto.getNum()%>"><button type="button" class="btn btn-info btn-xs">수정</button></a>

  <a href="infodelete.jsp?num=<%=dto.getNum()%>"><button type="button" class="btn btn-info btn-xs">삭제</button></a>

  </td>

  </tr>

  <%}

  %>

</table>

</body>

</html>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infoinsertform.jsp

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<body>

<form action="infoinsertaction.jsp" method="post">

  <table class="table table-bordered" style="width: 400px;">

    <tr>

      <th>이름</th>

        <td>

<!-- jsp에서는 id가 아닌 name -->        

          <input type="text" name="name" size="7" placeholder="이름입력" 

          required="required" class="form-control">

        </td>

    </tr>

    

    <tr>

      <th>주소</th>

        <td>    

          <input type="text" name="addr" size="20" placeholder="주소입력" 

          required="required" class="form-control">

        </td>

    </tr>

    

    <tr>

      <td colspan="2" align="center">

      <input type="submit" value="전송" class="btn btn-info">

      <input type="button" value="목록" onclick="location.href='infolist.jsp'" class="btn btn-danger">

      </td>

    </tr>

  </table>

</form>

</body>

</html>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infoinsertaction.jsp

<%@page import="myinfo.MyinfoDao"%>

<%@page import="myinfo.MyinfoDto"%>

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<body>

<%

//한글처리

request.setCharacterEncoding("utf-8");

 

//name,addr 읽어오기

String name=request.getParameter("name");

String addr=request.getParameter("addr");

 

//dto생성

MyinfoDto dto=new MyinfoDto();

 

//입력데이터 dto로 묶어서

dto.setName(name);

dto.setAddr(addr);

 

//insert메서드로 전달

MyinfoDao dao=new MyinfoDao();

dao.infoInsert(dto);

 

//info리스트로..주소값이 list로 바뀜(퀀텀db 확인)

response.sendRedirect("infolist.jsp");

%>

</body>

</html>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infodelete.jsp

<%@page import="myinfo.MyinfoDto"%>

<%@page import="myinfo.MyinfoDao"%>

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<body>

<%

    String num=request.getParameter("num");

    

    MyinfoDao dao=new MyinfoDao();

    dao.infoDelete(num);

    

    response.sendRedirect("infolist.jsp");

%>

</body>

</html>

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infoupdateform.jsp

<%@page import="myinfo.MyinfoDto"%>

<%@page import="myinfo.MyinfoDao"%>

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<%

String num=request.getParameter("num");

MyinfoDao dao=new MyinfoDao();

MyinfoDto dto=dao.getData(num);

%>

<body>

<form action="infoupdateaction.jsp" method="post">

  <table class="table table-bordered" style="width: 400px;">

    <tr>

      <th>이름</th>

        <td>

<!-- jsp에서는 id가 아닌 name -->        

          <input type="text" name="name" size="7" value="<%=dto.getName()%>" class="form-control">

        </td>

    </tr>

    

    <tr>

      <th>주소</th>

        <td>    

          <input type="text" name="addr" size="20" value="<%=dto.getAddr()%>" class="form-control">

        </td>

    </tr>

    

    <tr>

      <td colspan="2" align="center">

  <!-- hidden은 위치 상관없음, 폼안에만 있으면됨 -->

  <input type="hidden" name="num" value="<%=num%>">      

      <input type="submit" value="수정" class="btn btn-info">

      <input type="button" value="목록" onclick="location.href='infolist.jsp'" class="btn btn-danger">

      </td>

    </tr>

  </table>

</form>

</body>

</html>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

infoupdateaction.jsp

<%@page import="myinfo.MyinfoDao"%>

<%@page import="myinfo.MyinfoDto"%>

<%@ 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 href="https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap" rel="stylesheet">

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

</head>

<body>

<%

    //한글

    request.setCharacterEncoding("utf-8");

 

    //데이터 읽어서 dto에 넣기 

    String num=request.getParameter("num");

    String name=request.getParameter("name");

    String addr=request.getParameter("addr");

    

    MyinfoDto dto=new MyinfoDto();

    dto.setNum(num);

    dto.setName(name);

    dto.setAddr(addr);

    

    //dao클래스의 update호출

    MyinfoDao dao=new MyinfoDao();

    dao.infoUpdate(dto);

    

    //목록파일로 이동

    response.sendRedirect("infolist.jsp");

%>

</body>

</html>

 

 

 

수정

 

 

추가&삭제         

 

 

 

 

 

 

'JSP' 카테고리의 다른 글

211020_jsp로 게시판 만들기  (0) 2021.10.20
211019_복습(jsp)  (0) 2021.10.19
211012_form전송(checkbox, radio,select,array)  (0) 2021.10.12
211012_form전송(back)  (0) 2021.10.12
211012_form전송(checkbox)  (0) 2021.10.12