IT/Jsp

jsp - DB연결, insert, select, update, delete

노마드오브 2018. 9. 14. 23:05

파일명 : insertForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>회원가입</h1>

<hr>

<form action="insertPro.jsp" method="post">

아이디: <input type="text" name="id"><br>

패스워드: <input type="password" name="passwd"><br>

이름: <input type="text" name="name"><br>

<input type="submit" value="회원가입">

</form>

</body>

</html>



파일명 : insertPro.jsp

<%@page import="java.sql.DriverManager"%>

<%@page import="java.sql.PreparedStatement"%>

<%@page import="java.sql.Connection"%>

<%@page import="java.sql.Timestamp"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

// request 한글처리 (post 전송 시)

request.setCharacterEncoding("utf-8");

// request 요청 파라미터 정보 가져오기

String id = request.getParameter("id");

String passwd = request.getParameter("passwd");

String name = request.getParameter("name");

// 날짜  현시스템 날짜 가져오기

// currentTimeMillis()

// 1970년 1월 1일부터 현재까지 경과된 밀리초

Timestamp reg_date = new Timestamp(System.currentTimeMillis());


// DB 연결정보

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

String user = "jspid";

String pwd = "jsppass";

// insert를 위해서 JDBC 객체 2개 필요

Connection con = null;

PreparedStatement pstmt = null;

String sql = "";

// 1단계  드라이버 로딩

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

// 2단계  DB연결

con = DriverManager.getConnection(url, user, pwd);

// 3단계  sql 생성

sql = "INSERT INTO member (id, passwd, name, reg_date) VALUES (?, ?, ?, ?)";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, id);

pstmt.setString(2, passwd);

pstmt.setString(3, name);

pstmt.setTimestamp(4, reg_date);

// 4단계  실행

// executeUpdate() 메소드는 테이블에 변경을 가하는

// insert, update, delete 문을 수행할때 사용함

pstmt.executeUpdate();

out.println("회원가입성공<br>");

// JDBC 사용 후 객체닫기 (사용의 역순으로 닫기)

pstmt.close();

con.close();

%>

</body>

</html>



파일명: select.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"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>회원목록조회</h1>

<hr>

<table border="1">

<tr>

<th>아이디</th>

<th>패스워드</th>

<th>이름</th>

<th>가입날짜</th>

</tr>

<%

//DB 연결정보

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

String user = "jspid";

String pwd = "jsppass";

Connection con = null;

PreparedStatement pstmt = null;

String sql = "";

ResultSet rs = null;

// 1단계  드라이버 로딩

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

// 2단계  DB연결

con = DriverManager.getConnection(url, user, pwd);

// 3단계  sql 생성

sql = "SELECT * FROM member";

pstmt = con.prepareStatement(sql);

// 4단계  실행 => 결과저장

rs = pstmt.executeQuery(); // select일때 호출

// 5단계  저장 => 화면출력

while (rs.next()) { // 다음행으로 커서 이동. 데이터있으면true/없으면false리턴

// rs.getString("id");

// rs.getString("passwd");

// rs.getString("name");

// rs.getTimestamp("reg_date");

%>

<tr>

<td><%=rs.getString("id") %></td>

<td><%=rs.getString("passwd") %></td>

<td><%=rs.getString("name") %></td>

<td><%=rs.getTimestamp("reg_date") %></td>

</tr>

<%

}

// JDBC 사용 후 객체닫기 (사용의 역순으로 닫기)

rs.close();

pstmt.close();

con.close();

%>

</table>

</body>

</html>



파일명: update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>회원수정</h1>

<hr>

<form action="updatePro.jsp" method="post">

  아이디: <input type="text" name="id"><br>

  패스워드: <input type="password" name="passwd"><br>

  수정할 이름: <input type="text" name="name"><br>

  <input type="submit" value="회원수정">

</form>

</body>

</html>



파일명: updatePro.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"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

// post 한글처리

request.setCharacterEncoding("utf-8");

// request 파라미터 값 가져오기 id passwd name

String id = request.getParameter("id");

String passwd = request.getParameter("passwd");

String name = request.getParameter("name");

// DB 연결정보

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

String user = "jspid";

String pwd = "jsppass";

Connection con = null;

PreparedStatement pstmt = null;

PreparedStatement pstmt2 = null;

ResultSet rs = null;

String sql = "";

// 1. 드라이버 로딩

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

// 2. DB 연결

con = DriverManager.getConnection(url, user, pwd);

// 3. id에 해당하는 passwd 가져오기

sql = "select passwd from member where id = ?";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, id);

// 4. 실행  rs 실행저장

rs = pstmt.executeQuery();

// 5.

// rs 데이터(행, 레코드) 있으면 아이디 존재

//    패스워드 비교  equals() 맞으면 update 실행 "수정성공"

// 틀리면 "패스워드 틀림"

// 없으면 "아이디 없음"

if (rs.next()) {

// 아이디 있음

if (passwd.equals(rs.getString("passwd"))) {

pstmt.close();  // select 문장객체 닫기

// 맞으면 update "수정성공"

sql = "update member set name = ? where id = ? and passwd = ?";

pstmt2 = con.prepareStatement(sql);

pstmt2.setString(1, name);

pstmt2.setString(2, id);

pstmt2.setString(3, passwd);

// 실행

pstmt2.executeUpdate();

out.println("수정성공<br>");

} else {

out.println("패스워드 틀림");

}

} else {

out.println("아이디 없음");

}

// JDBC 자원닫기

rs.close();

pstmt.close();  // delete 문장객체 닫기

con.close();

%>

</body>

</html>



파일명: deleteForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>회원삭제</title>

</head>

<body>

<h1>회원삭제</h1>

<hr>

<form action="deletePro.jsp" method="post">

아이디: <input type="text" name="id"><br>

패스워드: <input type="password" name="passwd"><br>

<input type="submit" value="회원삭제">

</form>

</body>

</html>



파일명: deletePro.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"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<%

// 한글처리

request.setCharacterEncoding("utf-8");

// id passwd 가져오기

String id = request.getParameter("id");

String passwd = request.getParameter("passwd");

// DB 연결정보

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

String user = "jspid";

String pwd = "jsppass";

// JDBC 참조변수

Connection con = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

// 1. 드라이버 로딩

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

// 2. DB 연결

con = DriverManager.getConnection(url, user, pwd);

// 3. id에 해당하는 passwd 가져오기

String sql = "select * from member where id = ?";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, id);

// 4. 실행  rs저장

rs = pstmt.executeQuery();

// 5. 

//  rs 데이터 있으면 아이디 있음.

// 패스워드 같으면 delete "삭제"

// 패스워드 다르면 "패스워드 틀림" 

// 없으면 아이디 없음.

if (rs.next()) {

if (passwd.equals(rs.getString("id"))) {

sql = "delete from member where id = ?";

pstmt = con.prepareStatement(sql);

pstmt.setString(1, id);

pstmt.executeUpdate();

out.println("삭제성공<br>");

} else {

out.println("패스워드 틀림<br>");

}

} else {

out.println("아이디 없음<br>");

}

// JDBC 자원닫기

rs.close();

pstmt.close();

con.close();

%>

</body>

</html>