✿∘˚˳°∘°
52일차 : DB연결 본문
20230210
0. DB연결하기
JDBCTemplate.java : jdbc수업 시 사용했던 java파일
(connection, preparedstatement, resultset, commit, rollback에 대한 항목들이 있음)
ojdbc6.jar : 자바와 연결하기 위한파일
경로 - C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext

-- 실습을 위한 SQL 테이블
CREATE TABLE MEMBER_TBL(
MEMBER_NO NUMBER PRIMARY KEY,
MEMBER_ID VARCHAR2(20) UNIQUE NOT NULL,
MEMBER_PW VARCHAR2(30) NOT NULL,
MEMBER_NAME VARCHAR2(20) NOT NULL,
MEMBER_PHONE CHAR(13) NOT NULL,
MEMBER_ADDR VARCHAR2(300) NOT NULL,
MEMBER_LEVEL NUMBER, -- 회원등급(1:관리자 2:정회원 3:준회원)
ENROLL_DATE CHAR(10) --YYYY-MM-DD 문자열로 집어넣고 읽어옴
);
-- MEMBER_NO / MEMBER_LEVEL / ENROLL_DATE 빼고는 사용자에게 입력을 받음
CREATE SEQUENCE MEMBER_SEQ;
INSERT INTO MEMBER_TBL
VALUES(MEMBER_SEQ.NEXTVAL, 'user01', '1111', '김관리', '010-1111-1111', '서울시', 1, '2023-02-10');
INSERT INTO MEMBER_TBL
VALUES(MEMBER_SEQ.NEXTVAL, 'user02', '2222', '이멤버', '010-2222-2222', '인천시', 2, '2023-02-10');
INSERT INTO MEMBER_TBL
VALUES(MEMBER_SEQ.NEXTVAL, 'user03', '3333', '삼멤버', '010-3333-3333', '부산시', 3, '2023-02-10');
SELECT * FROM MEMBER_TBL;
COMMIT;
DAO : Member.java
package kr.or.iei.member.vo;
public class Member {
//vo : Value Object 변수를 만들어서 사용
private int memberNo;
private String memberId;
private String memberPw;
private String memberName;
private String memberPhone;
private String memberAddr;
private int memberLevel;
private String enrollDate;
public Member() {
super();
}
public Member(String memberId, String memberPw, String memberName, String memberPhone, String memberAddr) {
super();
this.memberId = memberId;
this.memberPw = memberPw;
this.memberName = memberName;
this.memberPhone = memberPhone;
this.memberAddr = memberAddr;
}
public Member(int memberNo, String memberId, String memberPw, String memberName, String memberPhone,
String memberAddr, int memberLevel, String enrollDate) {
super();
this.memberNo = memberNo;
this.memberId = memberId;
this.memberPw = memberPw;
this.memberName = memberName;
this.memberPhone = memberPhone;
this.memberAddr = memberAddr;
this.memberLevel = memberLevel;
this.enrollDate = enrollDate;
}
public int getMemberNo() {
return memberNo;
}
public void setMemberNo(int memberNo) {
this.memberNo = memberNo;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberPw() {
return memberPw;
}
public void setMemberPw(String memberPw) {
this.memberPw = memberPw;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getMemberAddr() {
return memberAddr;
}
public void setMemberAddr(String memberAddr) {
this.memberAddr = memberAddr;
}
public int getMemberLevel() {
return memberLevel;
}
public void setMemberLevel(int memberLevel) {
this.memberLevel = memberLevel;
}
public String getEnrollDate() {
return enrollDate;
}
public void setEnrollDate(String enrollDate) {
this.enrollDate = enrollDate;
}
}
0. index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Servlet-DB 연동 프로젝트(신혜빈)</h1>
<hr>
<!-- 기능을위해서 필요한 것 : 컨트롤러 쪽에 요청 -> Servlet생성 -> 쿼리문생각(select * from member_tbl)
쿼리문수행 시 사용자에게 받아야할 값이 있는지 생각 -> 없는경우 Servlet요청만(a태그사용) -->
<!-- 원하는 처리를 위한 쿼리문 수행을 위해서 필요한 데이터가 없음 : 바로 Servlet에 요청하면 된다 -->
<h3><a href="/allMember.do">1. 전체 회원 조회</a></h3>
<!-- select * from member_tbl where member_id='입력아이디'; -->
<!-- 아이디를 입력받아야 하는 상황 -> 아이디를 입력받을 수 있는 양식이 있는 페이지로 이동 -->
<h3><a href="/html/searchMemberFrm.html">2. 아이디로 회원조회</a></h3>
<!-- 사용할 쿼리
입력받아야할 항목이 있으면 입력받는 페이지 생성해서 이동
회원가입 성공/실패 메세지까지 화면에 출력 -->
<h3><a href="/html/joinFrm.html">3. 회원가입</a></h3>
<!-- 로그인이 없으므로 수정할 회원아이디를 입력받아 수정
수정은 비밀번호 / 전화번호 / 주소만 가능 -->
<h3><a href="/html/findMemberFrm.html">4.정보수정</a></h3>
</body>
</html>
1. 전체회원조회
Controller - 앞으로 Servlet파일이 여기에 들어갈 것
AllMemberServlet.java
package kr.or.iei.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.iei.member.service.MemberService;
import kr.or.iei.member.vo.Member;
/**
* Servlet implementation class AllMemberServlet
*/
@WebServlet(name = "AllMember", urlPatterns = { "/allMember.do" })
public class AllMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AllMemberServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 값추출
// 화면에서 사용자가 보내준 값이 없으므로 생략 가능
//3. 비즈니스로직(이 요청으로 서버가 해줘야 할 일)
// -> DB에서 모든 회원을 조회 -> service에서 db작업이 완료된걸 ArrayList로 받을것
MemberService service = new MemberService();
ArrayList<Member> list = service.selectAllMember();//보내줄 값이 없으므로 매개변수X
//4. 결과처리
/*
for(Member m : list) {
System.out.println("memberId : "+m.getMemberId());
System.out.println("memberPw : "+m.getMemberPw());
}*/
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head><title>전체회원조회</title></head>");
out.println("<body>");
if(list.size() == 0) {
out.println("<h2>회원정보를 조회할 수 없습니다.</h2>");
}else {
out.println("<h1>전체회원정보</h1>");
out.println("<hr>");
out.println("<table border=1>");
out.println("<tr>");
out.println("<th>회원번호</th><th>아이디</th><th>비밀번호</th><th>이름</th><th>전화번호</th><th>주소</th><th>등급</th><th>가입일</th>");
out.println("</tr>");
String level = " ";
for(Member m : list) {
if(m.getMemberLevel() == 1) {
level = "관리자";
}else if(m.getMemberLevel() == 2){
level = "정회원";
}else if(m.getMemberLevel() == 3) {
level = "준회원";
}
out.println("<tr>");
out.println("<td>"+m.getMemberNo()+"</td><td><a href='/searchMember.do?memberId="+m.getMemberId()+"'>"+m.getMemberId()+"</a></td><td>"+m.getMemberPw()+"</td><td>"+m.getMemberName()+"</td>");
out.println("<td>"+m.getMemberPhone()+"</td><td>"+m.getMemberAddr()+"</td><td>"+level+"</td><td>"+m.getEnrollDate()+"</td>");
out.println("</tr>");
}
out.println("</table>");
}
out.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Service
private MemberDao dao;
public MemberService() {
super();
dao = new MemberDao();
}
public ArrayList<Member> selectAllMember() {
//MemberDao dao = new MemberDao();
//전역변수는 딱히 의미가없어서 지역변수로 선언해도 된다.
Connection conn = JDBCTemplate.getConnection();
ArrayList<Member> list = dao.selectAllMember(conn);
JDBCTemplate.close(conn);
return list;
}
dao
public ArrayList<Member> selectAllMember(Connection conn) {
PreparedStatement pstmt = null;
ResultSet rset = null;
ArrayList<Member> list = new ArrayList<Member>();
String query = "select * from member_tbl";
try {
pstmt = conn.prepareStatement(query);
rset = pstmt.executeQuery();
while(rset.next()) {
Member m = new Member();
m.setEnrollDate(rset.getString("enroll_Date"));
m.setMemberAddr(rset.getString("member_addr"));
m.setMemberId(rset.getString("member_id"));
m.setMemberLevel(rset.getInt("member_level"));
m.setMemberName(rset.getString("member_name"));
m.setMemberNo(rset.getInt("member_no"));
m.setMemberPhone(rset.getString("member_phone"));
m.setMemberPw(rset.getString("member_pw"));
list.add(m);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCTemplate.close(pstmt);
JDBCTemplate.close(rset);
}
return list;
}

2. 아이디를 입력받아 회원 조회
Controller
SearchMemberServlet.java
package kr.or.iei.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.iei.member.service.MemberService;
import kr.or.iei.member.vo.Member;
/**
* Servlet implementation class SearchMemberServlet
*/
@WebServlet(name = "SearchMember", urlPatterns = { "/searchMember.do" })
public class SearchMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SearchMemberServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 값추출
String memberId = request.getParameter("memberId");
//3. 비즈니스로직
MemberService service = new MemberService();
Member m = service.selectOneMember(memberId);
//4. 결과처리
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head><title>아이디로 조회</title></head>");
out.println("<body>");
out.println("<h1>[ "+memberId+" ] 정보 조회</h1>");
out.println("<hr>");
if(m == null) {
out.println("<h3>존재하지 않는 아이디 입니다.</h3>");
}else {
out.println("NO : "+m.getMemberNo()+"<br>");
out.println("ID : "+m.getMemberId()+"<br>");
out.println("PW : "+m.getMemberPw()+"<br>");
out.println("이름 : "+m.getMemberName()+"<br>");
out.println("전화번호 : "+m.getMemberPhone()+"<br>");
out.println("주소 : "+m.getMemberAddr()+"<br>");
out.println("등급 : "+m.getMemberLevel()+"<br>");
out.println("가입일 : "+m.getEnrollDate()+"<br>");
}
out.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
service
public Member selectOneMember(String memberId) {
Connection conn = JDBCTemplate.getConnection();
Member m = dao.selectOneMember(conn, memberId);
JDBCTemplate.close(conn);
return m;
}
dao
public Member selectOneMember(Connection conn, String memberId) {
PreparedStatement pstmt = null;
ResultSet rset = null;
Member m = null;
String query = "select * from member_tbl where member_id = ?";
try {
pstmt = conn.prepareStatement(query);
pstmt.setString(1, memberId);
rset = pstmt.executeQuery();
if(rset.next()) {
m = new Member();
m.setMemberAddr(rset.getString("member_addr"));
m.setEnrollDate(rset.getString("enroll_Date"));
m.setMemberAddr(rset.getString("member_addr"));
m.setMemberId(rset.getString("member_id"));
m.setMemberLevel(rset.getInt("member_level"));
m.setMemberName(rset.getString("member_name"));
m.setMemberNo(rset.getInt("member_no"));
m.setMemberPhone(rset.getString("member_phone"));
m.setMemberPw(rset.getString("member_pw"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCTemplate.close(pstmt);
JDBCTemplate.close(rset);
}
return m;
}
3. 회원가입
3 - 1 ) 회원가입을 하기위해 회원가입form(html파일)으로 이동
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원가입</h1>
<hr>
<form action="/joinMember.do" method = "post">
<label for="id">아이디 : </label>
<input tpye="text" name="memberId" id="id"><br>
<label for="pw">비밀번호 : </label>
<input type="password" name="memberPw" id="pw"><br>
<label for="name">이름</label>
<input type="text" name="memberName" id="name"><br>
<label for="phone">전화번호</label>
<input type="text" name="memberPhone" id="phone"><br>
<label for="addr">주소</label>
<input tpye="text" name="memberAddr" id="addr"><br>
<input type="submit" value="회원가입">
<input type="reset" value="취소">
</form>
</body>
</html>
3 - 2 ) 입력받은 값을 Servlet을 통해 처리
- Servlet
package kr.or.iei.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.iei.member.service.MemberService;
import kr.or.iei.member.vo.Member;
/**
* Servlet implementation class JoinMemberServlet
*/
@WebServlet(name = "JoinMember", urlPatterns = { "/joinMember.do" })
public class JoinMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public JoinMemberServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 값추출
String memberId = request.getParameter("memberId");
String memberPw = request.getParameter("memberPw");
String memberName = request.getParameter("memberName");
String memberPhone = request.getParameter("memberPhone");
String memberAddr = request.getParameter("memberAddr");
Member m = new Member(memberId, memberPw, memberName, memberPhone, memberAddr);
//3. 비즈니스로직
MemberService service = new MemberService();
int result = service.joinMember(m);
//4. 결과처리
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head><title>회원가입</title></head>");
out.println("<body>");
out.println("<h1>회원가입</h1>");
out.println("<hr>");
if(result == 0) {
out.println("<h3>회원가입 실패!</h3>");
}else {
out.println("<h3>회원가입 성공!</h3>");
}
out.println("<br>");
out.println("<a href='/'>메인으로 돌아가기</a>");
out.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
- Service
public int joinMember(Member m) {
Connection conn = JDBCTemplate.getConnection();
int result = dao.joinMember(conn, m);
if(result > 0) {
JDBCTemplate.commit(conn);
}else {
JDBCTemplate.rollback(conn);
}
JDBCTemplate.close(conn);
return result;
}
- Dao
public int joinMember(Connection conn, Member m) {
PreparedStatement pstmt = null;
int result = 0;
String query = "insert into member_tbl values(member_seq.nextval, ?, ?, ?, ?, ?, 3, to_char(sysdate, 'yyyy-mm-dd'))";
try {
pstmt = conn.prepareStatement(query);
pstmt.setString(1, m.getMemberId());
pstmt.setString(2, m.getMemberPw());
pstmt.setString(3, m.getMemberName());
pstmt.setString(4, m.getMemberPhone());
pstmt.setString(5, m.getMemberAddr());
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCTemplate.close(pstmt);
}
return result;
}
4. 정보수정
- 현재 login기능이 없으므로 아이디를 입력받아서 비밀번호/전화번호/주소만 변경가능하도록 구상
( 단, 바꿀수 없는 정보포함 모든정보를 확인 할 수 있다)
4 - 1 ) 정보를 수정할 아이디를 입력하는 폼으로 이동
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/findMember.do" method="get">
<label for="id">수정할 아이디 입력 : </label>
<input type="text" name="memberId" id="pw">
<input type="submit" value="확인">
</form>
</body>
</html>
4 - 2 ) 입력받은 아이디의 정보를 불러옴
- Servlet
package kr.or.iei.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.iei.member.service.MemberService;
import kr.or.iei.member.vo.Member;
/**
* Servlet implementation class FindMemberServlet
*/
@WebServlet(name = "FindMember", urlPatterns = { "/findMember.do" })
public class FindMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FindMemberServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 값추출
String memberId = request.getParameter("memberId");
//3. 비즈니스로직
MemberService service = new MemberService();
//3-1 멤버찾기
Member m = service.selectOneMember(memberId);
//4. 결과처리
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head><title>회원정보조회</title></head>");
out.println("<body>");
if(m == null) {
out.println("<h2>회원정보를 조회할 수 없습니다.</h2>");
}else {
out.println("<form action='/updateMember.do' method='post'>");
out.println("<table>");
out.println("<tr>");
out.println("<th>회원번호</th>");
out.println("<td><input type='text' value = '"+m.getMemberNo()+"' readonly></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>아이디</th>");
out.println("<td><input type='text' value = '"+m.getMemberId()+"' name='memberId' readonly></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>비밀번호</th>");
out.println("<td><input type='password' value = '"+m.getMemberPw()+"' name='memberPw'></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>이름</th>");
out.println("<td><input type='text' value = '"+m.getMemberName()+"' readonly></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>전화번호</th>");
out.println("<td><input type='text' value = '"+m.getMemberPhone()+"' name='memberPhone'></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>주소</th>");
out.println("<td><input type='text' value = '"+m.getMemberAddr()+"' name='memberAddr'></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>회원등급</th>");
out.println("<td><input type='text' value = '"+m.getMemberLevel()+"' readonly></td>");
out.println("</tr>");
out.println("<tr>");
out.println("<th>가입일</th>");
out.println("<td><input type='text' value = '"+m.getEnrollDate()+"' readonly></td>");
out.println("</tr>");
out.println("</table>");
out.println("<input type='submit' value='정보수정'>");
out.println("</form>");
}
out.println("</body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
- Service
public Member selectOneMember(String memberId) {
Connection conn = JDBCTemplate.getConnection();
Member m = dao.selectOneMember(conn, memberId);
JDBCTemplate.close(conn);
return m;
}
- Dao
public Member selectOneMember(Connection conn, String memberId) {
PreparedStatement pstmt = null;
ResultSet rset = null;
Member m = null;
String query = "select * from member_tbl where member_id = ?";
try {
pstmt = conn.prepareStatement(query);
pstmt.setString(1, memberId);
rset = pstmt.executeQuery();
if(rset.next()) {
m = new Member();
m.setMemberAddr(rset.getString("member_addr"));
m.setEnrollDate(rset.getString("enroll_Date"));
m.setMemberAddr(rset.getString("member_addr"));
m.setMemberId(rset.getString("member_id"));
m.setMemberLevel(rset.getInt("member_level"));
m.setMemberName(rset.getString("member_name"));
m.setMemberNo(rset.getInt("member_no"));
m.setMemberPhone(rset.getString("member_phone"));
m.setMemberPw(rset.getString("member_pw"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCTemplate.close(pstmt);
JDBCTemplate.close(rset);
}
return m;
}
4 - 3 ) 위의 Servlet에서 작성한 html폼에 입력한대로 정보 업데이트
- Servlet
package kr.or.iei.member.controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.iei.member.service.MemberService;
import kr.or.iei.member.vo.Member;
/**
* Servlet implementation class UpdateMemberServlet
*/
@WebServlet(name = "UpdateMember", urlPatterns = { "/updateMember.do" })
public class UpdateMemberServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UpdateMemberServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 값추출
String memberId = request.getParameter("memberId");
String memberPw = request.getParameter("memberPw");
String memberPhone = request.getParameter("memberPhone");
String memberAddr = request.getParameter("memberAddr");
//3. 비즈니스로직
MemberService service = new MemberService();
int result = service.upadateMember(memberId, memberPw, memberPhone, memberAddr);
//4. 결과처리
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html><head><title>화원정보변경</title></head>");
out.println("<body>");
if(result > 0) {
out.println("<h2>정보변경성공</h2>");
}else {
out.println("<h2>정보변경실패</h2>");
}
out.println("<a href='/'>메인으로 돌아가기</a>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
- Service
public int upadateMember(String memberId, String memberPw, String memberPhone, String memberAddr) {
Connection conn = JDBCTemplate.getConnection();
int result = dao.updateMember(conn, memberId, memberPw, memberPhone, memberAddr);
if(result > 0) {
JDBCTemplate.commit(conn);
}else {
JDBCTemplate.rollback(conn);
}
JDBCTemplate.close(conn);
return result;
}
- Dao
public int updateMember(Connection conn, String memberId, String memberPw, String memberPhone, String memberAddr) {
PreparedStatement pstmt = null;
int result = 0;
String query = "update member_tbl set member_pw = ?, member_phone = ?, member_addr = ? where member_id = ?";
try {
pstmt = conn.prepareStatement(query);
pstmt.setString(1, memberPw);
pstmt.setString(2, memberPhone);
pstmt.setString(3, memberAddr);
pstmt.setString(4, memberId);
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JDBCTemplate.close(pstmt);
}
return result;
}
'국비수업 > Server' 카테고리의 다른 글
56일차 : mvc2WebProject - 3 (0) | 2023.02.16 |
---|---|
55일차 : mvc2WebProject - 2 (0) | 2023.02.16 |
54일차 : mvc2WebProject - 1 (0) | 2023.02.16 |
53일차 : JSP, MVC1, MVC2 (0) | 2023.02.16 |
51일차 2 : web, servlet 기초 (0) | 2023.02.09 |