본문 바로가기

Application/JSP Server

[JSP 실습] 8. 고객 등록 관리 프로그램

반응형

 

고객들의 이름, 이메일 주소, 전화번호를 입력받아 DB 커넥션풀을 이용하여

DB에 저장하고 전체 목록을 출력하는 JSP 프로그램

 

 

<%@ page contentType="text/html;charset=utf-8" import="javax.sql.*,java.sql.*, javax.naming.*" %> <!-- 8장과 다른부분 -->
<% request.setCharacterEncoding("utf-8"); %>

<%
	// 데이터베이스 연결관련 변수 선언
	Connection conn = null;
	PreparedStatement pstmt = null;
	
	try{//<!-- 8장과 다른부분 -->
        Context initContext = new InitialContext();
        Context envContext = (Context)initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource)envContext.lookup("jdbc/mysql"); //8장과 다름
        
        // 커넥션 얻기
         conn = ds.getConnection();

		// username 값을 입력한 경우 sql 문장을 수행.
		if(request.getParameter("customer_name") != null) {
			// Connection 클래스의 인스턴스로 부터 SQL  문 작성을 위한 Statement 준비
			String sql = "insert into db2 values(?,?,?)";
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1,request.getParameter("customer_name"));
			pstmt.setString(2,request.getParameter("email"));
			pstmt.setString(3,request.getParameter("telnumber"));
			pstmt.executeUpdate();
		}
	}
	catch(Exception e) {
		e.printStackTrace();
	}
%>
<HTML>
<HEAD><TITLE>JDBC 테스트 </TITLE></HEAD>
<BODY>
<center>
<H2>트랜잭션 test</H2>
<HR>

<form name=form1 method=post action=jdbctest_dbcp.jsp>
이름 : <input type=text name=customer_name>
email주소 : <input type=text name=email size=40>
전화번호 : <input type=text name=telnumber size=15>
<input type=submit value="등록">
</form>
<HR>
</center>
# 등록 목록<P>
<%
	try{
		// select 문장을 문자열 형태로 구성한다.
		String sql = "select customer_name, email, telnumber from db2";

		pstmt = conn.prepareStatement(sql);

		// select 를 수행하면 데이터정보가 ResultSet 클래스의 인스턴스로 리턴됨.
		ResultSet rs = pstmt.executeQuery();
		int i=1;

		// 마지막 데이터까지 반복함.
		while(rs.next()) {
			out.println(i+" : "+rs.getString(1)+" , "+rs.getString(2)+" , "+rs.getString(3)+"<BR>");
			i++;
		}

		// 사용한 자원의 반납.
		rs.close();
		pstmt.close();
		conn.close();
	}
	catch(Exception e) {
		System.out.println(e);
	}
%>
</BODY>
</HTML>

반응형