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 |