ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] SQL
    WEB/JSP 2022. 9. 9. 19:30

    1. SQL 파일 생성

    -- 파일명: sql.sql
    CREATE TABLE MEM(
    	ID VARCHAR2(10),
    	NAME VARCHAR2(15),
    	PWD VARCHAR2(20),
    	PHONE VARCHAR2(15)
    );
    INSERT INTO MEM VALUES('SOMI','이소미','1234','010-1234-1234');
    INSERT INTO MEM VALUES('SANG','전상오','1234','010-5555-6666');
    INSERT INTO MEM VALUES('LIGHT','김빛나','1234','010-2222-3333');

     

    2. JSP 파일 생성

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@page import="java.sql.ResultSet" %>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>MemberMGR.jsp</title>
    <%!
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	ResultSet rs=null;
    	
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    	String uid="scott";
    	String pass= "tiger";
    	
    	String sql="select*from mem";
    %>
    </head>
    <body>
    <!-- MEM테이블의 레코드를 모두 읽어와서 화면에 레코드를 행별로 필드를 열에 맞춰서 표시 -->
    <table width="800" border="1">
    	<tr><th>이름</th><th>아이디</th><th>암호</th><th>전화번호</th>
        </tr>
    <%
    	try{
    		// 테이블을 읽어오기 위해 데이터베이스에 연결함
    		Class.forName(driver);
    		con=DriverManager.getConnection(url, uid, pass);
    		
    		pstmt=con.prepareStatement(sql);
            // sql과 con을 pstmt에 장착
    		rs=pstmt.executeQuery(); 
            // 장착된 sql 실행 후 결과를 rs에 저장
    		
    		while(rs.next()) {
    			out.println("<tr>");
    				out.println("<td>"+rs.getString("name")+"</td>");
    				out.println("<td>"+rs.getString("id")+"</td>"); 
    				out.println("<td>"+rs.getString("pwd")+"</td>");
    				out.println("<td>"+rs.getString("phone")+"</td>");
    			out.println("</tr>");
    		}
    	} catch(Exception e){e.printStackTrace();
    	} finally{
    		try{
    			if(rs!=null) rs.close();
    			if(pstmt!=null) pstmt.close();
    			if(con!=null) con.close();
    		} catch(Exception e){e.printStackTrace();}
    	}
    %>
    </table>
    </body>
    </html>

    JSP 파일 실행. 데이터베이스 정보를 불러오지 못함

     

    3. JSP파일 데이터베이스에 연결하기

    프로젝트 안 WEB-INF 폴더에 lib 우클릭

    import 클릭
    General에 File System 클릭 후 Next
    Browse..클릭
    파일 경로: C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
    연결할 데이터베이스 클릭 후 Finish
    Web App Libraries에 선택한 데이터베이스 추가된 것을 확인
    JSP 파일 실행. 데이터베이스 정보 가져옴


    main문 작성

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@page import="java.sql.ResultSet" %>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>MemberMGR.jsp</title>
    <%!
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	ResultSet rs=null;
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    	String uid="scott";
    	String pass= "tiger";
    	String sql="select*from mem";
    %>
    </head>
    <body>
    <table width="800" border="1">
    	<tr><th>이름</th><th>아이디</th><th>암호</th><th>전화번호</th><th>수정</th><th>삭제</th>
    	</tr>
    	try{
    		Class.forName(driver);
    		con=DriverManager.getConnection(url, uid, pass);
    		
    		pstmt=con.prepareStatement(sql); 
    		rs=pstmt.executeQuery(); 
    		
    		while(rs.next()) {
    			out.println("<tr>");
    				out.println("<td>"+rs.getString("name")+"</td>");
    				out.println("<td>"+rs.getString("id")+"</td>"); 
    				out.println("<td>"+rs.getString("pwd")+"</td>");
    				out.println("<td>"+rs.getString("phone")+"</td>");
    				out.println("<td align='center'><a href='updateForm.jsp?id="+rs.getString("id")+"'>수정</a></td>");
    				out.println("<td align='center'><a href='delete.jsp?="+rs.getString("id")+"'>삭제</a></td>");
    			out.println("</tr>");
    		}
    	} catch(Exception e){e.printStackTrace();
    	} finally{
    		try{
    			if(rs!=null) rs.close();
    			if(pstmt!=null) pstmt.close();
    			if(con!=null) con.close();
    		} catch(Exception e){e.printStackTrace();}
    	}
    %>
    </table>
    <a href="InsertForm.jsp">멤버 추가</a>
    </body>
    </html>

     

    1. insert

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>InsertForm.jsp</title>
    </head>
    <body>
    <h2>회원 정보 입력 폼</h2>
    <form method="get" action="insertMember_do.jsp">
    	<table>
    		<tr><td>이름</td><td>
    			<input type="text" name="name" size="20"></td></tr>
    		<tr><td>아이디</td><td>
    			<input type="text" name="userid" size="20"></td></tr>
    		<tr><td>비밀번호</td><td>
    			<input type="password" name="pwd" size="20"></td></tr>
    		<tr><td>전화번호</td><td>
    			<input type="text" name="phone" size="11"></td></tr>
    		<tr><td><input type="submit" value="전송"></td>
    			<td><input type="reset" value="취소"></td></tr>
    	</table>
    </form>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"    
        pageEncoding="UTF-8"%>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    
    <% // inserMember_do.jsp
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    	String uid="scott";
    	String pass= "tiger";
    	
    	String sql="insert into mem(id,name,pwd,phone)  values(?, ?, ?, ?)";
    	
    	String userid=request.getParameter("userid");
    	String name=request.getParameter("name");
    	String pwd=request.getParameter("pwd");
    	String phone=request.getParameter("phone");
    	
    	try {
    		Class.forName(driver);
    		con=DriverManager.getConnection(url,uid,pass);
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1,  userid);
    		pstmt.setString(2,  name);
    		pstmt.setString(3,  pwd);
    		pstmt.setString(4,  phone);
    		
    		pstmt.executeUpdate();
    		} catch (Exception e){e.printStackTrace();
    		} finally{
    			try{
    				if(pstmt!=null) pstmt.close();
    				if(con!=null) con.close();
    			} catch(Exception e){e.printStackTrace();}
    		}
    	response.sendRedirect("MemberMGR.jsp");
    %>

     

    2. update

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@page import="java.sql.DriverManager" %>
    <%@page import="java.sql.ResultSet" %>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>UpdateForm.jsp</title>
    <%
    Connection con=null;
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    String driver="oracle.jdbc.OracleDriver";
    String url="jdbc:oracle:thin:@localhost:1521:xe";
    String sql="select*from mem where id=?";
    %>
    </head>
    <body>
    <%
    	String userid=request.getParameter("id");
    	String name=null ,phone=null;
    	
    	try {
    		Class.forName(driver);
    		con=DriverManager.getConnection(url,"scott","tiger");
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1,  userid);
    		rs=pstmt.executeQuery();
    		if(rs.next()){
    			name=rs.getString("name");
    			phone=rs.getString("phone");
    		}
    	} catch (Exception e){e.printStackTrace();
    	} finally{
    		try{
    			if(rs!=null) rs.close();
    			if(pstmt!=null) pstmt.close();
    			if(con!=null) con.close();
    		} catch(Exception e){e.printStackTrace();}
    	}
    %>
    <h2>회원 정보 수정 폼</h2>
    <form method="post" action="updateMember_do.jsp">
    	<table>
    		<tr><td>이름</td><td>
    			<input type="text" name="name" size="20" value="<%=name %>"></td></tr>
    		<tr><td>아이디</td><td>
    			<input type="text" name="userid" size="20" value="<%=userid %>"></td></tr>
    		<tr><td>비밀번호</td><td>
    			<input type="password" name="pwd" size="20"></td></tr>
    		<tr><td>전화번호</td><td>
    			<input type="text" name="phone" size="11" value="<%=phone %>"></td></tr>
    				
    		<input type="hidden" name="updateid" value="<%=userid %>"/>
    			
    		<tr><td><input type="submit" value="정보수정"></td><td><input type="reset" value="취소"></td></tr>
    	</table>
    </form>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    <% // updateMember_do.jsp
    	request.setCharacterEncoding("UTF-8");
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    	
    	String name=request.getParameter("name");
    	String userid=request.getParameter("userid"); 
        // updateform에서 수정이 되었을 수도 있는 userid
    	String pwd=request.getParameter("pwd");
    	String phone=request.getParameter("phone");
    	String updateid=request.getParameter("updateid"); 
        // hidden으로 숨어서 전송된 원래 userid
    	
    	String sql="update mem set id=?, name=?, pwd=?, phone=? where id=?";
    	
    	try {
    		Class.forName(driver);
    		con=DriverManager.getConnection(url,"scott","tiger");
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1,  userid);
    		pstmt.setString(2,  name);
    		pstmt.setString(3,  pwd);
    		pstmt.setString(4,  phone);
    		pstmt.setString(5,  updateid);
    		pstmt.executeUpdate();
    		} catch (Exception e){e.printStackTrace();
    		} finally{
    			try{
    				if(pstmt!=null) pstmt.close();
    				if(con!=null) con.close();
    			} catch(Exception e){e.printStackTrace();}
    		}
    	response.sendRedirect("MemberMGR.jsp");
    %>

     

    3. delete

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@page import="java.sql.PreparedStatement" %>
    <%@page import="java.sql.Connection" %>
    <%@page import="java.sql.DriverManager" %>
    <%
    	Connection con=null;
    	PreparedStatement pstmt=null;
    	String driver="oracle.jdbc.OracleDriver";
    	String url="jdbc:oracle:thin:@localhost:1521:xe";
    
    	String id=request.getParameter("id");
    
    	String sql = "delete from mem where id=?";
    
    	try {
    		Class.forName(driver);
    		con=DriverManager.getConnection(url,"scott","tiger");
    		pstmt= con.prepareStatement(sql);
    		pstmt.setString(1,  id);
    		pstmt.executeUpdate();
    	} catch (Exception e){e.printStackTrace();
    	} finally{
    		try{
    			if(pstmt!=null) pstmt.close();
    			if(con!=null) con.close();
    		} catch(Exception e){e.printStackTrace();}
    	}
    	response.sendRedirect("MemberMGR.jsp");
    %>

    홍길서 정보 '삭제' 클릭한 결과

    'WEB > JSP' 카테고리의 다른 글

    [JSP] bean  (0) 2022.09.09
    [JSP] session을 이용한 loginform  (0) 2022.09.09
    [JSP] cookie, session, removeAttribute  (0) 2022.09.09
    [JSP] servlet, action tag form  (0) 2022.09.09
    [JSP] login form, forward form, server object  (0) 2022.09.09

    댓글

Designed by Tistory.