gwooden_코린이

이클립스 JSP/서블릿 JDBC 사용해보기 본문

JSP&Servlet

이클립스 JSP/서블릿 JDBC 사용해보기

gwooden22 2023. 1. 27. 22:26
728x90
<%@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"
    pageEncoding="UTF-8"%>

<%!
	Connection conn = null;
	Statement stmt = null;
	ResultSet rs = null;
	
	String url = "jdbc:oracle:thin:@localhost:1521:XE";
%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<table border='1'>
		<tr>
			<th>이름</th>
			<th>아이디</th>
			<th>비밀번호</th>
			<th>이메일</th>
			<th>전화번호</th>
			<th>권한</th>
		</tr>
		
		<%
			String sql = "select * from member";
		
			try {
				Class.forName("oracle.jdbc.driver.OracleDriver");
				conn = DriverManager.getConnection(url, "study", "1234");
				stmt = conn.createStatement();
				rs = stmt.executeQuery(sql);
				
				while(rs.next()) {
					out.print("<tr>");
					out.print("<td>" + rs.getString("name") + "</td>");
					out.print("<td>" + rs.getString("userid") + "</td>");
					out.print("<td>" + rs.getString("pw") + "</td>");
					out.print("<td>" + rs.getString("email") + "</td>");
					out.print("<td>" + rs.getString("phone") + "</td>");
					out.print("<td>" + rs.getInt("admin") + "</td>");
					out.print("</tr>");
				}
			} catch(Exception e) {
				e.printStackTrace();
			} finally {
				try {
					if(rs != null)
						rs.close();
					if(stmt != null)
						stmt.close();
					if(conn != null)
						conn.close();
				} catch(Exception e) {
					e.printStackTrace();
				}
			}
		%>
		
	</table>
</body>
</html>

 

JDBC 드라이브 로드 -> 데이터베이스 연결 -> SQL문 실행 -> DB연결 끊음

 

DriverManager -> Connection -> Statement -> ResultSet

 

ojdbc6.jar 자바랑 DB연결시 필요한 API

 

Class.forName("oracle.jdbc.driver.OracleDriver");

 

DB에 연결

Connection 인터페이스

Connection conn = new Connection( ); X <--- 요런 방식으로는 불가능

Connection conn = DriverManager.getConnection(url, id, pw); O <-- 사용은 이런 식으로

 

url

jdbc : oracle:thin:[hostname]:[port]:dbname

jdbc:oracle:thin:@localhost:1521:XE

id : study <-- 본인이 설정한 id

pw : 1234 <-- 본인이 설정한 pw

 

conn.close();

 

Statement SQL문을 처

Statement stmt = conn.createStatement( );

메서드 :

executeQuery : select 처리 -> 결과 나타나는 경우에 사용

executeUpdate : insert, update, delete -> 결과가 나타나는게 아니라 그냥 테이블 내용이 변경되는 경우에 사용

 

stmt.executeQuery(SQL);

 

결과를 저장하는 ResultSet

ResultSet rs = stmt.executeQuery(SQL);

 

ResultSet 메서드

next( ) : 다음 데이터가 있는지 확인하 있으면 true, 없으면 false 리턴하고 다음으로 이동

previouse( ) : 이전 데이터가 있는지 혹인해서 있으면 true, 없으면 false 리턴하고 다음으로 이동

first( ) : 현재 위치에서 첫 번째로 이동

last( ) : 현재 위치에서 마지막으로 이동

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <h1>member 테이블에 추가할 데이터 입력</h1>
   
   <form method="post" action="addResult.jsp">
	      이름 <input type="text" name="name"> <br>
	      아이디<input type="text" name="id"> <br>
	      비밀번호<input type="text" name="pw"> <br>
	      이메일 <input type="text" name="email"> <br>
	      전화번호 <input type="text" name="phone"> <br>
	      권한 <input type="radio" name="admin" value="1"> 관리자
         <input type="radio" name="admin" value="0"> 일반회원 <br>
      <input type="submit" value="확인">   
   </form>
</body>
</html>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%!

	Connection conn = null;
	PreparedStatement pstmt = null;
	Statement stmt = null;
	
	String url = "jdbc:oracle:thin:@localhost:1521:XE";

%>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%
		request.setCharacterEncoding("utf-8");
	
		String name = request.getParameter("name");
		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
		String email = request.getParameter("email");
		String phone = request.getParameter("phone");
		int admin = Integer.parseInt(request.getParameter("admin"));
		
		String sql = "insert into member values(?,?,?,?,?,?)";
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(url, "study", "1234");
			pstmt = conn.prepareStatement(sql);
			
			pstmt.setString(1, name);
			pstmt.setString(2, id);
			pstmt.setString(3, pw);
			pstmt.setString(4, email);
			pstmt.setString(5, phone);
			pstmt.setInt(6, admin);
			
			pstmt.executeUpdate();
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(pstmt != null)
					pstmt.close();
				if(conn != null)
					conn.close();
			} catch(Exception e) {
				e.printStackTrace();
			}
		}
	%>
	
	<a href="showMember.jsp">목록확인</a>

</body>
</html>

<%@page import="java.sql.*"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    
<%!

	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	
	String url = "jdbc:oracle:thin:@localhost:1521:XE";
	String id = "study";
	String pw = "1234";

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h1>사원정보</h1>
	<table border="1">
		<tr>
			<th>사원번호</th>
			<th>이름</th>
			<th>생년월일</th>
			<th>부서명</th>
		</tr>
		
		<%
			try {
			String sql = "select * from 사원";
		
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(url, id, pw);
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			
			while(rs.next()) {
				out.print("<tr>");
				out.print("<td>" + rs.getInt("사원번호") + "</td>");
				out.print("<td>" + rs.getString("이름") + "</td>");
				out.print("<td>" + rs.getInt(3) + "</td>");
				out.print("<td>" + rs.getString(4) + "</td>");
				out.print("</tr>");
			}
			
			} catch(Exception e) {
				out.print("조회 실패");
				e.printStackTrace();
			} finally {
				try {
					if(rs != null)
						rs.close();
					if(pstmt != null)
						pstmt.close();
					if(conn != null)
						conn.close();
				} catch(Exception e) {
					e.printStackTrace();
				}
			}
		%>
		
	</table>

</body>
</html>
728x90
Comments