JAVA - Oracle JDBC(회원관리프로그램) 예제

회원관리 프로그램

오늘은 회원관리 프로그램을 만들어보았다.

JDBC연결할때 사용되는 주소, 아이디,비밀번호, 쿼리문등은 

외부파일로 따로빼서 불러내는방법을 사용하였다.

 

driver.properties - JDBC 연결관리 파일

member-query.xml - query문 작성 xml파일

 

기능

1. 새 회원 등록
2. 모든 회원 조회
3. 아이디로 회원 조회
4. 성별로 회원 조회
5. 암호 변경
6. 이메일 변경
7. 전화번호 변경
8. 주소 변경
9. 회원 탈퇴
0. 프로그램 종료

 

코드

JDBCTemplate.class

중복된 JDBC 관련 설정파일을 한번에 관리하기위해 만든 CLASS

Connection 연결 및 close(), commit, rollback 메소드 등이 담겨있다.

오라클 드라이브 연결할때 properties 파일에서 정보들을 불러와 연결하고있다.

이렇게하면 나중에 관리하기가 편해질것같다.

package common;

import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCTemplate {
	
	public static Connection getConnection() {
		Connection conn = null;
		Properties prop = new Properties();
		try {
			prop.load(new FileReader("driver.properties")); // 파일 읽어오기
			
			Class.forName(prop.getProperty("driver"));
			conn = DriverManager.getConnection(prop.getProperty("url"), prop.getProperty("user"), prop.getProperty("password"));
			
			// 자동커밋 방지
			conn.setAutoCommit(false);
			
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return conn;
	}
	
	public static void close(Connection conn) {
		try {
			if(conn != null && !conn.isClosed())
				conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void close(Statement stmt) {
		try {
			if(stmt != null && !stmt.isClosed())
				stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void close(ResultSet rset) {
		try {
			if(rset != null && !rset.isClosed())
				rset.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void commit(Connection conn) {
		try {
			if(conn != null & !conn.isClosed())
			conn.commit();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public static void rollback(Connection conn) {
		try {
			if(conn != null & !conn.isClosed())
			conn.commit();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

 

TestMain.class

프로그램을 실행시키는 Run 클래스

package run;

import member.view.MemberMenu;

public class TestMain {

	public static void main(String[] args) {
		MemberMenu mm = new MemberMenu();
		mm.displayMenu();
		System.out.println("회원 관리 프로그램을 종료합니다.");

	}

}

 

Member.class

회원의 정보를들 담을 Member객체

package member.model.vo;

import java.sql.Date;

public class Member {
/*
 * MEMBER_ID	VARCHAR2(30 BYTE)
MEMBER_PWD	VARCHAR2(30 BYTE)
MEMBER_NAME	VARCHAR2(30 BYTE)
GENDER	VARCHAR2(10 BYTE)
EMAIL	VARCHAR2(50 BYTE)
PHONE	VARCHAR2(30 BYTE)
ADDRESS	VARCHAR2(100 BYTE)
AGE	NUMBER
ENROLL_DATE	DATE
 * */
	private String memberId;
	private String memberPwd;
	private String memberName;
	private String gender;
	private String email;
	private String phone;
	private String address;
	private int age;
	private Date enrollDate;		// 가입일
	// 생성자
	public Member() {}
	
	// 가입일자 (enrollDate) 는 SYSDATE 처리하기 위해 매개변수로 받지 않음
	public Member(String memberId, String memberPwd, String memberName, String gender, String email, String phone, String address, int age) {
		super();
		this.memberId = memberId;
		this.memberPwd = memberPwd;
		this.memberName = memberName;
		this.gender = gender;
		this.email = email;
		this.phone = phone;
		this.address = address;
		this.age = age;
	}

	public Member(String memberId, String memberPwd, String memberName, String gender, String email, String phone,
			String address, int age, Date enrollDate) {
		super();
		this.memberId = memberId;
		this.memberPwd = memberPwd;
		this.memberName = memberName;
		this.gender = gender;
		this.email = email;
		this.phone = phone;
		this.address = address;
		this.age = age;
		this.enrollDate = enrollDate;
	}

	public String getMemberId() {
		return memberId;
	}

	public void setMemberId(String memberId) {
		this.memberId = memberId;
	}

	public String getMemberPwd() {
		return memberPwd;
	}

	public void setMemberPwd(String memberPwd) {
		this.memberPwd = memberPwd;
	}

	public String getMemberName() {
		return memberName;
	}

	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getEnrollDate() {
		return enrollDate;
	}

	public void setEnrollDate(Date enrollDate) {
		this.enrollDate = enrollDate;
	}

	@Override
	public String toString() {
		return "Member [memberId=" + memberId + ", memberPwd=" + memberPwd + ", memberName=" + memberName + ", gender="
				+ gender + ", email=" + email + ", phone=" + phone + ", address=" + address + ", age=" + age
				+ ", enrollDate=" + enrollDate + "]";
	}

 

MemberMenu.class

프로그램의 메뉴를 선택하는 클래스

package member.view;

import java.util.Scanner;

import member.controller.MemberController;
import member.model.vo.Member;

public class MemberMenu {
	Scanner sc  = new Scanner(System.in);
	private MemberController mc = new MemberController();
	
	public void displayMenu() {
		
		while(true) {
			System.out.println("\n *** 회원 관리 프로그램 *** \n");
			System.out.println("1. 새 회원 등록");
			System.out.println("2. 모든 회원 조회");
			System.out.println("3. 아이디로 회원 조회");
			System.out.println("4. 성별로 회원 조회");
			System.out.println("5. 암호 변경");
			System.out.println("6. 이메일 변경");
			System.out.println("7. 전화번호 변경");
			System.out.println("8. 주소 변경");
			System.out.println("9. 회원 탈퇴");
			System.out.println("0. 프로그램 종료");
			int no = Integer.parseInt(sc.nextLine());
			
			switch(no) {
			case 0 : return;
			case 1 :
				mc.insertMember(inputMember());
				break;
			case 2 : 
				mc.selectAll();
				break;
			case 3 : 
				mc.selectMemberId(inputMemberId()); //아이디로 회원 조회
				break;
			case 4 :
				mc.selectGender(inputGender()); //성별로 회원 조회
				break;
			case 5 :
				mc.updatePassword(inputMemberId(), inputMemberPwd());
				break;
			case 6 :
				mc.updateEmail(inputMemberId(), inputEmail()); // 이메일 변경
				break;
			case 7 :
				mc.updatePhone(inputMemberId(), inputPhone()); // 전화번호 변경
				break;
			case 8 :
				mc.updateAddress(inputMemberId(), inputAddress()); // 주소 변경
				break;
			case 9 :
				mc.deleteMember(inputMemberId());
				break;
			default :
				System.out.println("잘못 된 번호입니다. 다시 입력해주세요.");
			}
		}
	}
	
	// 회원 정보 입력
	public Member inputMember() {
		System.out.print("회원 아이디 : ");
		String memberId = sc.nextLine();
		System.out.print("암호 : ");
		String memberPwd = sc.nextLine();
		System.out.print("이름 : ");
		String memberName = sc.nextLine();
		System.out.print("성별(M/F) : ");
		String gender = sc.next().toUpperCase();
		System.out.print("이메일 : ");
		String email = sc.next();
		System.out.print("전화번호 : ");
		String phone = sc.next();
		sc.nextLine();
		System.out.print("주소 : ");
		String address = sc.nextLine();
		System.out.print("나이 : ");
		int age = sc.nextInt();
		sc.nextLine(); // 다음에 오는 주소 입력을 위해 엔터 제거
		
		Member m = new Member(memberId, memberPwd, memberName, gender, email, phone, address, age);
		return m;
	}
	
	// 회원 아이디 입력
	public String inputMemberId() {
		System.out.print("회원 아이디 : ");
		return sc.nextLine();
	}
	
	// 회원 비밀번호 입력
	public String inputMemberPwd() {
		System.out.print("수정할 비밀번호 입력: ");
		return sc.nextLine();
	}
	
	// 회원 성별 입력
	public String inputGender() {
		System.out.print("조회할 성별 : ");
		return sc.nextLine().toUpperCase();
	}
	
	// 회원 이메일 입력
	public String inputEmail() {
		System.out.print("수정할 이메일 입력 : ");
		return sc.nextLine();
	}
	
	// 회원 전화번호 입력
	public String inputPhone() {
		System.out.print("수정할 전화번호 입력 : ");
		return sc.nextLine();
	}
	
	// 회원 주소 입력
	public String inputAddress() {
		System.out.print("수정할 주소 입력 : ");
		return sc.nextLine();
	}

}

 

MemberView.class

프로그램의 출력 화면을 보여주는 클래스

package member.view;

import java.util.List;

import member.model.vo.Member;

public class MemberView {
	// 성공 알림용 뷰
	public void displaySuccess(String msg) {
		switch(msg) {
		 case "insert" :
			 System.out.println("회원 가입 성공");
			 break;
		 case "updatePassword" :
		 	 System.out.println("암호 수정 성공");
		 	 break;
		 case "updateEmail" :
			 System.out.println("이메일 수정 성공");
			 break;
		 case "updatePhone" :
			 System.out.println("전화번호 수정 성공");
			 break;
		 case "updateAddress" :
			 System.out.println("주소 수정 성공");
			 break;
		 case "delete" :
		 	 System.out.println("회원 탈퇴 성공");
		 	 break;
		 default :
			 System.out.println("알 수 없는 성공 알림 ");
		}
	}
	
	// 실패 알림용 뷰
	public void displayError(String msg) {
		switch(msg) {
		 case "insert" :
			 System.out.println("회원 가입 실패");
			 break;
		 case "updatePassword" :
		 	 System.out.println("암호 수정 실패");
		 	 break;
		 case "updateEmail" :
			 System.out.println("이메일 수정 실패");
			 break;
		 case "updatePhone" :
			 System.out.println("전화번호 수정 실패");
			 break;
		 case "updateAddress" :
			 System.out.println("주소 수정 실패");
			 break;
		 case "delete" :
		 	 System.out.println("회원 탈퇴 실패");
		 	 break;
		 case "selectMemberId":
			 System.out.println("");
		 default :
			 System.out.println("알 수 없는 실패 알림");
		}
	}
	
	// 회원 목록 출력용 뷰
	public void displayList(List<Member> mList) {
		if(mList.isEmpty()) {
			System.out.println("조회 된 회원이 없습니다.");
		}else {
			for(Member m : mList) {
				System.out.println(m);
			}
		}	
	}
	
	// 아이디로 회원조회
	public void displayMember(Member m) {
		if(m != null) {
			System.out.println(m);
		}else {
			System.out.println("조회 된 회원이 없습니다.");
		}
	}

}

 

MemberController.class

Controller > Service > Dao 순으로 차근차근 데이터를 주고받는다 

Controller같은겨우는 왕복후 입력 성공하였는지 실패하였는지 판단하는 클래스

package member.controller;

import java.util.List;

import member.model.service.MemberService;
import member.model.vo.Member;
import member.view.MemberView;

public class MemberController {
	private MemberService ms = new MemberService();
	private MemberView mv = new MemberView();

	// 1. 새 회원 등록
	public void insertMember(Member m) {
		int result = ms.insertMember(m);
		
		if(result > 0) {
			mv.displaySuccess("insert");
		} else {
			mv.displayError("insert");
		}
		
	}
	
	// 2. 모든 회원 조회
	public void selectAll() {
		List<Member> mList = ms.selectAll();
		
		mv.displayList(mList);
		
	}
	
	// 3. 아이디로 회원 조회
	public void selectMemberId(String memberId) {
		Member member = ms.selectMemberId(memberId);
		
		mv.displayMember(member);
	}
	
	// 4. 성별로 회원 조회
	public void selectGender(String gender) {
		List<Member> mList = ms.selectGender(gender);
		
		mv.displayList(mList);
	}
	
	// 5. 회원 암호 변경
	public void updatePassword(String memberId, String memberPwd) {
		int result = ms.updatePassword(memberId, memberPwd);
		
		if(result > 0) {
			mv.displaySuccess("updatePassword");
		} else {
			mv.displayError("updatePassword");
		}
	}
	
	// 6. 회원 이메일 변경
	public void updateEmail(String memberId, String email) {
		int result = ms.updateEmail(memberId, email);
		
		if(result > 0) {
			mv.displaySuccess("updateEmail");
		} else {
			mv.displayError("updateEmail");
		}
	}
	
	// 7. 회원 전화번호 변경
	public void updatePhone(String memberId, String phone) {
		int result = ms.updatePhone(memberId, phone);
		
		if(result > 0) {
			mv.displaySuccess("updatePhone");
		} else {
			mv.displayError("updatePhone");
		}
	}
	
	// 8. 회원 주소 변경
	public void updateAddress(String memberId, String address) {
		int result = ms.updateAddress(memberId, address);
		
		if(result > 0) {
			mv.displaySuccess("updateAddress");
		} else {
			mv.displayError("updateAddress");
		}
		
	}
	
	// 9. 회원 탈퇴
	public void deleteMember(String memberId) {
		int result = ms.deleteMember(memberId);
		
		if(result > 0) {
			mv.displaySuccess("delete");
		} else {
			mv.displayError("delete");
		}
	}

	

	
	
	
}

 

MemberService.class

Controller > Service > Dao 의 중간단계로써 

Connection 연결하거나 UPDATE 구문 일시 commit과 rollback 트랜지션을 담당하는 클래스 라고생각하면 된다.

package member.model.service;

import static common.JDBCTemplate.*;

import java.sql.Connection;
import java.util.List;

import member.model.dao.MemberDao;
import member.model.vo.Member;

public class MemberService {
	private MemberDao md = new MemberDao();
	
	// 1. 새 회원 등록
	public int insertMember(Member m) {
		Connection conn = getConnection();
		
		int result = md.insertMember(conn, m);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}
	
	// 2. 모든 회원 조회
	public List<Member> selectAll() {
		Connection conn = getConnection();
		
		List<Member> mList = md.selectAll(conn);
		
		close(conn);
		
		return mList;
	}
	
	// 3. 아이디로 회원 조회
	public Member selectMemberId(String memberId) {
		Connection conn = getConnection();

		Member member = md.selectMemberId(conn, memberId);
		
		close(conn);
		
		return member;
	}
	
	// 4. 성별로 회원 조회
	public List<Member> selectGender(String gender){
		Connection conn = getConnection();
		
		List<Member> mList = md.selectGender(conn, gender);
		
		close(conn);
		
		return mList;
	}
	
	// 5. 회원 암호 변경
	public int updatePassword(String memberId, String memberPwd) {
		Connection conn = getConnection();
		
		int result = md.updatePassword(conn, memberId, memberPwd);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}
	
	// 6. 회원 이메일 변경
	public int updateEmail(String memberId, String email) {
		Connection conn = getConnection();
		
		int result = md.updateEmail(conn, memberId, email);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}
	
	// 7. 회원 전화번호 변경
	public int updatePhone(String memberId, String phone) {
		Connection conn = getConnection();
		
		int result = md.updatePhone(conn, memberId, phone);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}
	
	// 8. 회원 주소 변경
	public int updateAddress(String memberId, String address) {
		Connection conn = getConnection();
		
		int result = md.updateAddress(conn, memberId, address);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}
	
	// 9. 회원 탈퇴
	public int deleteMember(String memberId) {
		Connection conn = getConnection();
		
		int result = md.deleteMember(conn, memberId);
		
		if(result > 0) {
			commit(conn);
		} else {
			rollback(conn);
		}
		
		close(conn);
		
		return result;
	}

}

 

MemberDao.class

마지막단계 실질적으로 데이터베이스와 연결하는 클래스

하지만 이번 클래스에서는 쿼리문은 외부의 저장해둔 파일을 불러와 사용하는형식이다.

처음사용해봤지만 가독성도 좋고 더 많이쓰이게 될것같다 ..따봉

package member.model.dao;

import static common.JDBCTemplate.close;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import member.model.vo.Member;


public class MemberDao {
	private Properties query = new Properties();
	
	public MemberDao() {
		try {
			// Service 클래스에서 new MemberDao() 호출시
			// query에 작성 된 쿼리문을 읽어오는 처리
			query.loadFromXML(new FileInputStream("member-query.xml"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	// 1. 새 회원 등록
	public int insertMember(Connection conn, Member m) {
		String sql = query.getProperty("insertMember");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, m.getMemberId());
			pstmt.setString(2, m.getMemberPwd());
			pstmt.setString(3, m.getMemberName());
			pstmt.setString(4, m.getGender());
			pstmt.setString(5, m.getEmail());
			pstmt.setString(6, m.getPhone());
			pstmt.setString(7, m.getAddress());
			pstmt.setInt   (8, m.getAge());
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
	}
	
	// 2. 모든 회원 조회
	public List<Member> selectAll(Connection conn) {
		String sql = query.getProperty("selectList");
		Statement stmt = null;
		ResultSet rset = null;
		List<Member> mList = new ArrayList<>();
		try {
			stmt = conn.createStatement();
			rset = stmt.executeQuery(sql);
			
			while(rset.next()) {
				Member m = new Member(rset.getString("MEMBER_ID"),
						              rset.getString("MEMBER_PWD"),
						              rset.getString("MEMBER_NAME"),
						              rset.getString("GENDER"),
						              rset.getString("EMAIL"),
						              rset.getString("PHONE"),
						              rset.getString("ADDRESS"),
						              rset.getInt("AGE"),
						              rset.getDate("ENROLL_DATE"));
				
			mList.add(m);
				
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(rset);
			close(stmt);
		}
		
		return mList;
	}
	
	// 3. 아이디로 회원 조회
	public Member selectMemberId(Connection conn, String memberId) {
		String sql = query.getProperty("selectMemberId");
		PreparedStatement pstmt = null;
		ResultSet rset = null;
		Member member = null;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memberId);
			
			rset = pstmt.executeQuery();
			
			while(rset.next()) {
				member = new Member();
				member.setMemberId(rset.getString("MEMBER_ID"));
				member.setMemberPwd(rset.getString("MEMBER_PWD"));
				member.setMemberName(rset.getString("MEMBER_NAME"));
				member.setGender(rset.getString("GENDER"));
				member.setEmail(rset.getString("EMAIL"));
				member.setPhone(rset.getString("PHONE"));
				member.setAddress(rset.getString("ADDRESS"));
				member.setAge(rset.getInt("AGE"));
				member.setEnrollDate(rset.getDate("ENROLL_DATE"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(rset);
			close(pstmt);
		} 
		
		return member;
	}
	
	// 4. 성별로 회원 조회
	public List<Member> selectGender(Connection conn, String gender){
		String sql = query.getProperty("selectGender");
		PreparedStatement pstmt = null;
		ResultSet rset = null;
		List<Member> mList = new ArrayList<>();
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, gender);
			
			rset = pstmt.executeQuery();
			
			while(rset.next()) {
				Member m = new Member();
				m = new Member();
				m.setMemberId(rset.getString("MEMBER_ID"));
				m.setMemberPwd(rset.getString("MEMBER_PWD"));
				m.setMemberName(rset.getString("MEMBER_NAME"));
				m.setGender(rset.getString("GENDER"));
				m.setEmail(rset.getString("EMAIL"));
				m.setPhone(rset.getString("PHONE"));
				m.setAddress(rset.getString("ADDRESS"));
				m.setAge(rset.getInt("AGE"));
				m.setEnrollDate(rset.getDate("ENROLL_DATE"));
				
				mList.add(m);
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(rset);
			close(pstmt);
		}
		
		return mList;
	}
	
	// 5. 회원 암호 변경
	public int updatePassword(Connection conn, String memberId, String memberPwd) {
		String sql = query.getProperty("updatePassword");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memberPwd);
			pstmt.setString(2, memberId);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
		
	}
	
	// 6. 회원 이메일 변경
	public int updateEmail(Connection conn, String memberId, String email) {
		String sql = query.getProperty("updateEamil");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, email);
			pstmt.setString(2, memberId);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
	}
	
	// 7. 회원 전화번호 변경
	public int updatePhone(Connection conn, String memberId, String phone) {
		String sql = query.getProperty("updatePhone");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, phone);
			pstmt.setString(2, memberId);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
	}
	
	// 8. 회원 주소 변경
	public int updateAddress(Connection conn, String memberId, String address) {
		String sql =query.getProperty("updateAddress");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, address);
			pstmt.setString(2, memberId);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
	}
	
	// 9. 회원 탈퇴
	public int deleteMember(Connection conn, String memberId) {
		String sql = query.getProperty("deletemMember");
		PreparedStatement pstmt = null;
		int result = 0;
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, memberId);
			
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		
		return result;
	}

}

 

출력

기존 오라클 데이터값

 

 

첫실행화면

 

1. 새 회원 등록

 

 

2. 모든 회원 조회

텍스트가 너무길어 .. 짤렸음 ..

 

3. 아이디로 회원 조회

 

4. 성별로 회원 조회

 

5. 암호 변경

6. 이메일 변경

7. 전화번호 변경

 

8. 주소 변경

 

9. 회원 탈퇴

 

후기

뭔가 ..금방끝날것같은 코드였는데 생각보다 오래걸렸던것같다 ..

지금은 회원정보를 검증하거나 그런 단계는 못하는데....

중복되는 코드들이나 개선해야될부분들은  추후 공부하면 수정해야할것같다.

 

'프로그래밍 > JAVA' 카테고리의 다른 글

자바스크립트 - 함수(function)  (0) 2021.07.27
JAVA - Oracle JDBC(도서관리프로그램) 예제  (0) 2021.07.13
JAVA - Oracle JDBC 간단 예제  (0) 2021.07.12
JAVA - Oracle JDBC  (0) 2021.07.12
JAVA - Oracle JDBC 다운, 적용  (0) 2021.07.12
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유