오라클과 JSP 연동 연습

백PM ㅣ 2022. 10. 7. 18:44

다음과 같은 열을 가지는 accounts 테이블에 데이터를 입출력합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<% 
	request.setCharacterEncoding("utf8");
	String name = request.getParameter("name");
	String email = request.getParameter("email");
	
	Connection conn = null;
	String sql = null;
	int success = -1;
	if(name != null && email != null){
		
		sql="INSERT INTO accounts(name,email) VALUES('"+name+"','"+email+"')";
	
		try{
			Context init = new InitialContext();
			DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
			conn = ds.getConnection();
			PreparedStatement stmt=conn.prepareStatement(sql);
			if(stmt.executeUpdate()!=0){success=1;}
		}catch(Exception e){
			e.printStackTrace();
			success = 0;
		}
	}
	sql="SELECT * FROM accounts";

	try{
		Context init = new InitialContext();
		DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
		conn = ds.getConnection();
		
		PreparedStatement pstmt=conn.prepareStatement(sql);
		ResultSet rs=pstmt.executeQuery();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 align="center">이벤트 등록</h1>
<hr>
<form action="db_inoutput.jsp" method="post">
<table align="center">
	<tr>
		<td>등록이름 : <input type="text" name="name"></td>
		<td>  email주소 : <input type="text" name="email"></td>
		<td>  <input type="submit" value="등록"> </td>
	</tr>
	<tr><td><%
			if(success==1) out.print("<p>"+name+"님을 등록했습니다</p>"); 
			else if(success==0) out.print("<p>"+name+"님을 등록하지 못했습니다</p>"); 
		%></td></tr>
</table>
</form>
<hr>

<%
		int i = 1;
		while(rs.next()){
			out.println("<h3>"+i+" : "+rs.getString(1)+" : "+rs.getString(2)+"</h3>");
			i++;
		}
		rs.close();
	} catch(Exception e){
		e.printStackTrace();
	}
%>
</body>
</html>