DB - 오라클과 이클립스(자바) 정보삭제(Delete) (2022-08-06)

2022. 8. 6. 22:523층 1구역 - 개발의 장/Oracle DataBase

1. 서론

 

정보삭제는 정보수정과 철차가 거의 일치한다.

단, 이번 정보삭제는 아이디 확인뿐만 아니라 비밀번호까지 확인하여 일치하면 삭제해 보려고 한다.

 

그...게임하다보면 자기가 먹고 싶은거 참고, 입고 싶은거 참아가며

키운 아들래미, 딸래미들 있잖아.... 그런거 해킹으로 털리는거 방지하려고

 

요즘 2차비밀번호 설정 많이 하잖아.... 

 

고런 느낌으로 비밀번호까지 일치해야만 계정 정보가 삭제되는 걸로...

 

sql서버에서 id 기준으로 비밀번호 받아오는데

사용자는 아이디와 비밀번호 입력하고...

 

서버에서 받아온 비밀번호와 사용자가 입력한 비밀번호가 일치하면

계정이 삭제되는 흐름으로 이해하면 될 것이라 생각된다.

 

2. 코드

 

 

package jdbc_concept1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class Delete {
	public static void main(String[] args) {
		try {
			Class.forName("oracle.jdbc.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		Connection con = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String user = "oracle";
		String password=  "oracle";
		//sql은 id를 기준으로 비밀번호를 선택해줘.
		String sql = "SELECT password FROM test WHERE id=?";
		Scanner sc = new Scanner(System.in);
		//사용자가 사용하는 아이디를 입력받아
		System.out.print("아이디 : "); String id = sc.next();
		System.out.print("비밀번호 : "); String pass = sc.next();
		
		try {
			//드라이버에서 oracle url에 접속후, user와 password를 입력해 연결.
			con = DriverManager.getConnection(url, user, password);
			//prepaerStatement에서 sql로 연결하여
			ps = con.prepareStatement(sql);
			//1번에 id의 입력값을 세팅
			ps.setString(1, id);
			//쿼리문을 실행하고
			rs = ps.executeQuery();
			//만약 ResultSet이 입력한 값이라면(== ps.setString(1, id);)
			if(rs.next()) {
				//그 DB에 저장되어있는 password를 가져와줘
				String dbPass = rs.getString("password");
				//만약 DB와 사용자 값이 같다면
				if(dbPass.equals(pass)) {
					//sql은 해당 id를 삭제할거라고 보고.
					sql = "DELETE FROM test WHERE id=?";
					//sql의 삭제를 승인 후,
					ps = con.prepareStatement(sql);
					//id를 세팅후
					ps.setString(1, id);
					//삭제를 진행.
					ps.executeUpdate();
				}else {
					//if(dbPass.equals(pass))문이 틀리면 아래를 출력
					System.out.println("비밀번호가 틀렸습니다.");
				}
			}else {
				//id부터 틀렸다면 아래를 출력
				System.out.println(id + "는/은 등록된 정보가 아닙니다.");
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		//실행이 끝나면 종료
		try {
			if(rs != null) 
				rs.close();
			if(ps != null) 
				ps.close();
			if(con != null)
				con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

 

 

 

틀린 내용이 있다면 피드백 부탁드립니다! 오늘도 감사드립니다!!!!