ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 211019_jsp로 게시판 만들기
    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

    댓글

Designed by Tistory.