[JDBC] 아이디 입력 시 회원 정보 조회하기

2022. 4. 4.공부/SQL, R

728x90

미리 작성해둔 SQL DB 테이블

 

1. 데이터 요청하는 페이지를 DB 연동하여 jsp파일로 작성

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");

// 1. name이 useid인 value를 get하여 uid에 넣기
String uid = request.getParameter("userid");
	
// 2. db 연동
String dbType = "com.mysql.cj.jdbc.Driver";
String connectUrl = "jdbc:mysql://localhost:3306/jdbcprac2?serverTimezone=UTC";
String connectId = "root";
String connectPw = "1111";
	
// 3. ResultSet 값은 일단 null로 지정
ResultSet rs = null;
		
try {
Class.forName(dbType); 
Connection con = DriverManager.getConnection(connectUrl,connectId,connectPw); 
String sql = "SELECT * FROM userinfo WHERE user_id = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
        
// 4. uid가 들어오면 위의 sql 구문의 ?에 해당하는 위치에 값을 넣고 쿼리문 날려줌
pstmt.setString(1,uid);
rs = pstmt.executeQuery();
} catch(Exception e) {
e.printStackTrace();
}	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<table border = "1">
	<thead>
		<th>유저 아이디</th>
		<th>유저 비밀번호</th>
		<th>유저 이름</th>
		<th>유저 이메일</th>
	</thead>
	<tbody>
	<tr> 
	<% while(rs.next()) { %>
	<td> <% out.println(rs.getString(1)); %> </td>
	<td> <% out.println(rs.getString(2)); %></td>
	<td> <% out.println(rs.getString(3)); %> </td>
	<td>  <% out.println(rs.getString(4)); %> </td>
	<% } %>
	</tr> 
	</tbody>
</table> 
</body>
</html>

2. 해당 페이지에 파라미터를 보내서 입력한 아이디의 회원 정보를 조회하는 방법은 2가지

 

1) url에 파라미터를 붙여서 전달 : 파일을 run하면 파라미터 값이 들어가지 않은 상태이기 때문에 아무 내용도 나타나지 않지만, url에 파라미터를 붙여서 값을 전달해주면 내용이 뜨게된다.

http://localhost:8080/JDBCProject/user/getUserInfo.jsp (첫화면)
http://localhost:8080/JDBCProject/user/getUserInfo.jsp?userid=bbbb113 (url에 파라미터 붙여서 날려준 후)

 

 

2) form형식을 사용한 jsp 페이지에서 get형식으로 파라미터를 보내준다.

<%@ 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>
<form action="getUserInfo.jsp" method="get" />
<input type="text" placeholder="아이디를 입력해주세요." name="userid" /> <br />
<input type="submit" value="제출" />
</form>
</body>
</html>

완성!