JSP에 Statement객체를 생성 연결 쿼리처리 select, insert, update, delete

     

    dbconn.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="java.sql.*" %>
    
    <%	
    	//페이지 모듈화하기 위해서 연결 부분을 따로 파일로 만들었다.
    	Connection connection = null;
    
    	String url = "jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC";
    	String id = "root";		//접속아이디
    	String pw = "7496";		//접속 비밀번호
    	String driver = "com.mysql.cj.jdbc.Driver";
    	
    	Class.forName(driver);
    	connection = DriverManager.getConnection(url, id, pw);
    %>

     

    insert_form_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>Insert 실습</title>
    </head>
    <body>
    	<h2>사용자 입력값 DB저장하기</h2>
    	<form action="insert_statement.jsp" method="post">
    		<p>아이디 : <input type="text" name="id"></p>
    		<p>비밀번호 : <input type="password" name="pw"></p>
    		<p>이름 : <input type="text" name="username"></p>
    		<p><input type="submit" value="전송"></p>
    	</form>
    </body>
    </html>

     

    테이블 컬럼값과 동일하게 name값을 넣어준다.

     

    insert_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>사용자 입력값 DB 저장하기</title>
    </head>
    <body>
    	<%@include file="dbconn.jsp" %> <!-- 접속할 DB코드를 페이지 지시자 태그로 가져옴 -->
    	
    	<%	
    		request.setCharacterEncoding("UTF-8");
    		
    		/* 사용자가 입력한 내용을 가져와서 변수에 저장함 */
    		String id = request.getParameter("id");
    		String pw = request.getParameter("pw");
    		String username = request.getParameter("username");
    		
    		//쿼리문 실행할 statement 객체 선언
    		Statement statement = null;
    		
    		try {
    			//쿼리문 작성
    			String sql = "insert into member(id,pw,username) values('"+id+"','"+pw+"','"+username+"')";
    			
    			//Connection객체로부터 Statement객체를 얻어내는 코드
    			statement = connection.createStatement();
    			
    			//쿼리문을 DB에 실행하는 코드
    			statement.executeUpdate(sql);
    			out.println("member테이블에 정상적으로 입력 성공되었습니다." +"<br/>");
    			
    		}catch(SQLException e){
    			out.println("member테이블에 입력이 실패했습니다." +"<br/>");
    			out.println("SQLException : " +e.getMessage()+ "<br/>");
    			e.printStackTrace();
    		}finally {
    			//자원 해제 반드시 해야한다.
    			if(statement != null){
    				statement.close();
    			}
    			if(connection != null){
    				connection.close();
    			}
    		}
    	%>
    	<a href="select_statement.jsp">회원조회</a>
    </body>
    </html>

    DB확인


    DB SELECT 결과 출력

     

    select_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>DB SELECT 결과</title>
    </head>
    <body>
    	<%@include file="dbconn.jsp" %>
    	
    	<table border="1">
    		<tr>
    			<th width="300" align="center">아이디</th>
    			<th width="300" align="center">비밀번호</th>
    			<th width="300" align="center">이름</th>
    		</tr>
    		<%
    			Statement statement = null;
    			ResultSet resultSet = null; //select한 결과를 받아오는 객체
    			
    			try {
    				String sql = "select * from member";
    				statement = connection.createStatement();
    				resultSet = statement.executeQuery(sql);
    				
    				//가져올 행이 있느냐?
    				while(resultSet.next()){
    					//해당하는 행의 컬럼값을 각각 저장하고 있다.
    					String id = resultSet.getString("id");
    					String pw = resultSet.getString("pw");
    					String username = resultSet.getString("username");
    		%>
    		<tr>
    			<td width="300" align="center"><%=id %></td>
    			<td width="300" align="center"><%=pw %></td>
    			<td width="300" align="center"><%=username %></td>
    		</tr>
    		<%
    				}
    			}catch(SQLException e) {
    				out.println("member테이블 select오류가 발생했습니다." +"<br/>");
    				out.println("SQLException : " +e.getMessage()+ "<br/>");
    				e.printStackTrace();
    			}finally {
    				if(resultSet != null){
    					resultSet.close();
    				}
    				if(statement != null){
    					statement.close();
    				}
    				if(connection != null){
    					connection.close();
    				}
    			}
    		%>
    	</table>
    	<a href="insert_form_statement.jsp">회원 가입</a>
    </body>
    </html>


    입력된 DB값 수정하기

     

    아이디 비밀번호가 맞으면 이름을 수정

     

    update_form_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>update 실습</title>
    </head>
    <body>
    	<h2>입력된 DB값 수정하기</h2>
    	<form action="update_statement.jsp" method="post">
    		<p>아이디 : <input type="text" name="id"></p>
    		<p>비밀번호 : <input type="password" name="pw"></p>
    		<p>이름 : <input type="text" name="username"></p>
    		<p><input type="submit" value="전송"></p>
    	</form>
    </body>
    </html>

     

    update_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>DB데이터 수정</title>
    </head>
    <body>
    	<%@include file="dbconn.jsp" %> <!-- 접속할 DB코드를 페이지 지시자 태그로 가져옴 -->
    	
    	<%
    		request.setCharacterEncoding("UTF-8");
    			
    		/* 사용자가 입력한 내용을 가져와서 변수에 저장함 */
    		String id = request.getParameter("id");
    		String pw = request.getParameter("pw");
    		String username = request.getParameter("username");
    		
    		Statement statement = null;	//쿼리문을 실행할 Statement객체
    		ResultSet resultSet = null; //select한 결과를 받아오는 객체
    		
    		try {
    			String sql = "select id, pw, username from member where id = '"+id+"' ";
    			statement = connection.createStatement();
    			resultSet = statement.executeQuery(sql);
    			/*
     			if(statement != null)
    				statement.close();
    			*/ 
    			/* ResultSet 결과물을 가지고 온 Statement객체가 닫힐 경우 ResultSet객체도 함깨 닫힌다.(id pw 비교를 못함)*/
    			
    			if(resultSet.next()) { //select된값 비교한뒤 update
    				String rid = resultSet.getString("id");
    				String rpw = resultSet.getString("pw");
    				
    				if(id.equals(rid) && pw.equals(rpw)){
    					sql = "update member set username = '"+username+"' where id = '"+id+"' ";
    					
    					/* statement객체는 쿼리를 단 한번 실행한다. 재사용 하기위해서는 반드시 다시 Connection 객체로부터
    					statement객체를 얻어야한다.*/
    					if(statement != null)
    						statement.close();
    					
    					statement = connection.createStatement();
    				    statement.executeUpdate(sql);
    					out.println(rid +"님의 정보를 수정했습니다.");
    				}
    				else {
    					out.println("아이디나 비밀번호가 일치하지 않습니다.");
    				}
    			}
    			else {
    				out.println("Member테이블에 잂치하는 아이디가 없습니다.");
    			}
    		}catch(SQLException e){
    			out.println("SQLException : " +e.getMessage()+ "<br/>");
    			e.printStackTrace();
    		}finally {
    			if(resultSet != null){
    				resultSet.close();
    			}
    			if(statement != null){
    				statement.close();
    			}
    			if(connection != null){
    				connection.close();
    			}
    		}
    	%>
    	<br/>
    	<a href="select_statement.jsp">회원리스트</a> &nbsp;&nbsp;&nbsp; <a href="insert_form_statement.jsp">회원가입</a>
    </body>
    </html>

     


     

     

    delete_form_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>delete 실습</title>
    </head>
    <body>
    	<h2>입력된 DB값 삭제하기</h2>
    	<form action="delete_statement.jsp" method="post">
    		<p>아이디 : <input type="text" name="id"></p>
    		<p>비밀번호 : <input type="password" name="pw"></p>
    		<p>이름 : <input type="text" name="username"></p>
    		<p><input type="submit" value="전송"></p>
    	</form>
    </body>
    </html>

     

    delete_statement.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>DB데이터 삭제</title>
    </head>
    <body>
    	<%@include file="dbconn.jsp" %> <!-- 접속할 DB코드를 페이지 지시자 태그로 가져옴 -->
    	
    	<%
    		request.setCharacterEncoding("UTF-8");
    			
    		/* 사용자가 입력한 내용을 가져와서 변수에 저장함 */
    		String id = request.getParameter("id");
    		String pw = request.getParameter("pw");
    		String username = request.getParameter("username");
    		
    		Statement statement = null;	//쿼리문을 실행할 Statement객체
    		ResultSet resultSet = null; //select한 결과를 받아오는 객체
    		
    		try {
    			String sql = "select id, pw, username from member where id = '"+id+"' ";
    			statement = connection.createStatement();
    			resultSet = statement.executeQuery(sql);
    			/*
     			if(statement != null)
    				statement.close();
    			*/ 
    			/* ResultSet 결과물을 가지고 온 Statement객체가 닫힐 경우 ResultSet객체도 함깨 닫힌다.(id pw 비교를 못함)*/
    			
    			if(resultSet.next()) { //select된값 비교한뒤 update
    				String rid = resultSet.getString("id");
    				String rpw = resultSet.getString("pw");
    				
    				if(id.equals(rid) && pw.equals(rpw)){
    					sql = "delete from member where id = '"+id+"' and pw = '"+pw+"' ";
    					
    					/* statement객체는 쿼리를 단 한번 실행한다. 재사용 하기위해서는 반드시 다시 Connection 객체로부터
    					statement객체를 얻어야한다.*/
    					if(statement != null)
    						statement.close();
    					
    					statement = connection.createStatement();
    				    statement.executeUpdate(sql);
    					out.println(rid +"님의 정보를 삭제했습니다.");
    				}
    				else {
    					out.println("아이디나 비밀번호가 일치하지 않습니다.");
    				}
    			}
    			else {
    				out.println("Member테이블에 잂치하는 아이디가 없습니다.");
    			}
    		}catch(SQLException e){
    			out.println("SQLException : " +e.getMessage()+ "<br/>");
    			e.printStackTrace();
    		}finally {
    			if(resultSet != null){
    				resultSet.close();
    			}
    			if(statement != null){
    				statement.close();
    			}
    			if(connection != null){
    				connection.close();
    			}
    		}
    	%>
    	<br/>
    	<a href="select_statement.jsp">회원리스트</a> &nbsp;&nbsp;&nbsp; 
    	<a href="update_form_statement.jsp">회원정보수정</a> &nbsp;&nbsp;&nbsp; 
    	<a href="insert_form_statement.jsp">회원가입</a>
    </body>
    </html>

     

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading