pstmt이용

조수경·2022년 1월 21일
0

JSP

목록 보기
39/45
post-thumbnail

PreparedStatement를 사용하는 순서

  1. Connection.prepareStatement() 메서드를 사용하여 PreparedStatement 생성
  2. PreparedStatement의 set 메서드를 사용하여 필요한 값 지정
  3. PreparedStatement의 executeQuery() 또는 executeUpdate() 메서드를 사용
    하여 Query를 실행
  4. finally 블록에서 사용한 PreparedStatement 를 닫음(close() 메서드 실행) PreparedStatement를 생성할 때에는 실행할 Query를 미리 입력하는데, 이 때
    값 부분을 물음표('?')로 대치한 Query를 사용함
    PreparedStatement 객체를 생성한 다음에는 PreparedStatement가 제공하는
    set 계열의 메서드를 사용해서 물음표를 대체할 값을 지정해주어야 함.
    첫 번째 물음표의 index는 1이며, 이후 물음표의 index는 나오는 순서대로
    index 값이 1씩 증가함

insertForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>

<title>MEMBER 테이블에 레코드 입력</title>
</head>
<body>
<form method="post" action="insert.jsp">
	<table border="1">
	
		<tr>
			<th>아이디</th>
			<td><input type="text" name="memberid" size="10" /></td>
			<th>비밀번호</th>
			<td><input type="password" name="password" size="10" /></td>
		</tr>
		<tr>
			<th>이름</th>
			<td><input type="text" name="name" size="10" /></td>
			<th>이메일</th>
			<td><input type="text" name="email" size="10" /></td>
		</tr>
		<tr>
			<td colspan="4"><input type="submit" value="입력" /></td>
		</tr>
	</table>
</form>
</body>
</html>

insert.jsp

<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	request.setCharacterEncoding("UTF-8");

	String memberid = request.getParameter("memberid");
	String password = request.getParameter("password");
	String name = request.getParameter("name");
	String email = request.getParameter("email");
	
	out.print(memberid +","+ password
			+","+ name +","+email);
	
	Class.forName("oracle.jdbc.driver.OracleDriver");
	Connection conn = null;
	//물음표 사용하기위해 써봄!!
	PreparedStatement pstmt = null;
	
	try{
		conn = DriverManager.getConnection(
				"jdbc:oracle:thin:@127.0.0.1:1521:xe"
				,"jspexam"
				,"java"
				);	
		pstmt = conn.prepareStatement(
				//pstmt는 괄호 안에 쿼리가 들어감
				"INSERT INTO MEMBER(MEMBERID,PASSWORD,NAME,EMAIL)"
				+" VALUES(?,?,?,?)"
				);
		pstmt.setString(1,memberid);
		pstmt.setString(2,password);
		pstmt.setString(3,name);
		pstmt.setString(4,email);
		
		pstmt.executeUpdate();
	}catch(SQLException ex){
		out.print(ex.getMessage());
	}finally{

		if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
		if(conn!=null)try{conn.close();}catch(SQLException ex){}
	}

	
%>
<!DOCTYPE html>
<html>
<head>

<title>입력</title>
</head>
<body>

</body>
</html>
profile
신입 개발자 입니다!!!

0개의 댓글