티스토리 뷰
코드번호 입력하여 DB에 해당하는 코드정보 불러오기
-소스파일 첨부
준비 : (mysql 루트로 로그인 -> use jspdb -> 테이블생성)
------------------------------------
inputForm.html ( 코드번호 입력 -> Reader.jsp로 값전달)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h4>상품코드 입력하세요</h4>
<form action=Reader.jsp method="get">
상품코드 : <input type="text" name=code size=5>
<input type="submit" value='확인'>
</form>
</body>
</html>
------------------------------------
Reader.jsp ( inputForm.html에서 입력받은코드 받아와서 그코드에 대한 제어를EditForm.jsp" 로 전달)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//inputForm에서 입력받은 값 (name이 code였음) jsp스크립트릿에서 변수로 받기
String code=request.getParameter("code");
if(code==null)
throw new Exception("상품코드를 입력하세요");
Connection conn=null
Statement stmt=null
try{
//드라이버 연결
Class.forName("com.mysql.jdbc.Driver");
//jspdb는 DB명 // mysql-> user는 root 비밀번호는 1234
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jspdb","root","1234");
if(conn==null)
throw new Exception("데이터베이스 연결 실패");
//연결된 상태를 stmt로
stmt=conn.createStatement();
// 입력받은 code에 해당하는 테이블의 정보를 받아옴 변수 입력시 '"+code+"' 로
ResultSet rs = stmt.executeQuery("select * from goodsinfo where code = '"+code+"';");
if(!rs.next())//코드에 해당하는 정보가 없을때
throw new Exception("상품코드 : '"+code+"' 에 해당하는 데이터가 없습니다");
//초기에 DB에 들어있는 정보를 가져와서 변수로 저장
String title= rs.getString("title");
String writer = rs.getString("writer");
int price = rs.getInt("price");
//값을 전달하기위해 값 셋팅 / / DB에서 불러와 저장한 변수값을 또다른 변수에 셋팅
request.setAttribute("CODE",code);
request.setAttribute("TITLE", title);//TITLE에 title값 지정
request.setAttribute("WRITER", writer);
request.setAttribute("PRICE", new Integer(price));
}finally{
try{
stmt.close();
}catch(Exception ignored){
}
try{
conn.close();
}catch(Exception ignored){
}
}
//제어를 EditForm.jsp로 넘김
RequestDispatcher dispatcher = request.getRequestDispatcher("EditForm.jsp");
dispatcher.forward(request, response);
%>
</body>
</html>
------------------------------------
EditForm.jsp ( Reader.jsp에서 해당코드정보에대한 제어를 받아와서 웹으로 뿌려줌 / 코드정보 수정버튼을누르면 Updater.jsp 로 이동 )
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h4>상품정보 수정한후 수정버튼을 누르세요</h4>
<h4>edit Form</h4>
<!--
------------------------
Reader.jsp에서
request.setAttribute("CODE",code);
//제어를 EditForm.jsp로 넘김
RequestDispatcher dispatcher = request.getRequestDispatcher("EditForm.jsp");
dispatcher.forward(request, response);
----------------------------
이페이지에서 -> value="${CODE}"로 받음
실행문으로 request.getAttribute("CODE")로 받을수도 있음
-->
<form action=Updater.jsp method=post>
코드: <input type="text" name=code size=20 value="${CODE}" READONLY=TRUE><br>
제목: <input type="text" name=title size=20 value="${TITLE}"><br>
저자: <input type="text" name=writer size=20 value="${WRITER}"><br>
가격: <input type="text" name=price size=20 value="${PRICE}">원<br>
<input type="submit" value='수정'>
</form>
</body>
</html>
|
------------------------------------
Updater.jsp (코드정보 수정을 수행하기위해 DB 연동위해 드라이버 연결하고 쿼리 실행/ UpdaterResult.jsp로 이동(code값도 함께 ) )
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
//EditForm에서 입력받은 text값들을 변수로 받음
String code =request.getParameter("code");
String title =request.getParameter("title");
String writer =request.getParameter("writer");
String price =request.getParameter("price");
//int price =Integer.parseInt(request.getParameter("price"));
Connection conn=null
Statement stmt = null
try{
//드라이버 연결
Class.forName("com.mysql.jdbc.Driver");
//jspdb는 DB명 // mysql-> user는 root 비밀번호는 1234
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jspdb","root","1234");
if(conn==null)
throw new Exception("데이터베이스 연결 실패");
//연결된 상태를 stmt로
stmt=conn.createStatement();
stmt.executeUpdate("update goodsinfo set title='"+title+"', price='"+price+"', writer='"+writer+"' where code='"+code+"'; ");
}finally{
try{
stmt.close();
}catch(Exception ignored){
}
try{
conn.close();
}catch(Exception ignored){
}
// UpdateResult.jsp로 이동 code값 넘김 (페이지이동)
response.sendRedirect("UpdaterResult.jsp?code="+code);
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
------------------------------------
UpdaterResult.jsp.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h4>상품정보가 수정되었습니다 </h4>
수정된 정보 조회하려면 링크클릭<br>
<a href=Reader.jsp?code=${param.code}>상품정보조회</a>
<!--
-- 고전방식으로 받으면 --
< %
String str1= request.getParameter("num1");
int num1= Integer.parseInt(str1);
% >
< % = num1 % >
--와 같고 --
--EL방식으로 받으면
EL방식 으로 받으면 스크립트릿에서 ,실행문에서 받을필요없이 그냥 ${param.num1}로 받을수 있음
-- 와 같다 --
-->
<br><br>
처음화면으로 돌아가려면 아래링크 클릭
<a href=inputForm.html>처음화면</a>
</body>
</html>
'It' 카테고리의 다른 글
오라클 SQL함수 (0) | 2022.10.22 |
---|---|
C# 한줄에 두수 입력하여 합구하기 (0) | 2022.10.20 |
오라클 , MS-SQL , MY-SQL (0) | 2022.10.10 |
코드의종류 7가지 (0) | 2022.10.09 |
소셜미디어가 시위나 자연재해 현장에서 발생하는 소식을 전달하는 강력한 매체로서의 사례 (0) | 2022.10.06 |