posted by 코딩 공부중 2020. 4. 17. 11:40

testmember의 로우 내용을 수정하는 예제

public static void select(String url, String user, String pass, int id) {
		PreparedStatement ps = null;
		try{
			Connection con = DriverManager.getConnection(url,user,pass);
			String sql = "select * from testmember where id=?"; // 찾아서 성공하면 1나옴
			ps = con.prepareStatement(sql);
			ps.setInt(1, id);    
			ResultSet rs = ps.executeQuery();
			System.out.println("수정하고자 하는 "+id+"의 정보입니다.");
			while(rs.next()) {
				System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getInt(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5));
			}
			
		} catch(SQLException e) {
			System.err.println("오라클 쿼리문 조회실패111ㅜㅜ");
			System.exit(0);
		}
	}
	public static void select(String url, String user, String pass, String name) {
		PreparedStatement ps = null;
		
		try{
			Connection con = DriverManager.getConnection(url,user,pass);
			String sql = "select * from testmember where name=?"; // 찾아서 성공하면 1나옴
			ps = con.prepareStatement(sql);
			ps.setString(1, name);    
			ResultSet rs = ps.executeQuery();
			System.out.println("수정하고자 하는 "+name+" 학생의 정보입니다.");
			while(rs.next()) {
				System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getInt(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5));
			}
			
		} catch(SQLException e) {
			System.err.println("오라클 쿼리문 조회실패111ㅜㅜ");
			System.exit(0);
		}
	}
	
	public static void update(String url, String user, String pass, int id) {
		Scanner sc = new Scanner(System.in);
		try {
			Connection conn = DriverManager.getConnection(url,user,pass);
			PreparedStatement ps = null;
			
			System.out.println("수정할 월급을 입력해주세요");
			int salary = sc.nextInt();
			System.out.println("수정할 이메일 입력해주세요");
			String email = sc.next();
			System.out.println("수정할 전화번호를 입력해주세요");
			String tel = sc.next();
			
			String sql = "update testmember set salary=?, email=?, tel=? where hakbun=?";
			ps = conn.prepareStatement(sql);
			
			ps.setDouble(1,salary);
			ps.setString(2, email);
			ps.setString(3, tel);
			ps.setInt(4, id);
			
			int res = ps.executeUpdate();
			
			if (res > 0) {
				System.out.println("아이디 " + id +"의 로우(레코드)를 수정하였습니다. ");
			}else {
				System.out.println("아이디 " + id +"의 로우(레코드)수정에 실패했습니다. ");
			}
			
		} catch (SQLException e) {
			System.err.println("오라클 쿼리문 조회실패ㅜㅜ");
			System.exit(0);
		}
	}
	
	public static void update(String url, String user, String pass, String name) {
		Scanner sc = new Scanner(System.in);
		try {
			Connection conn = DriverManager.getConnection(url,user,pass);
			PreparedStatement ps = null;
			
			System.out.println("수정할 월급을 입력해주세요");
			int salary = sc.nextInt();
			System.out.println("수정할 이메일 입력해주세요");
			String email = sc.next();
			System.out.println("수정할 전화번호를 입력해주세요");
			String tel = sc.next();
			
			
			String sql = "update testmember set salary=?, email=?, tel=? where name=?";
			ps = conn.prepareStatement(sql);
			
			ps.setDouble(1,salary);
			ps.setString(2, email);
			ps.setString(3, tel);
			ps.setString(4, name);
			
			int res = ps.executeUpdate();
			
			if (res > 0) {
				System.out.println("이름 " + name +"학생 의 로우(레코드)를 수정하였습니다. ");
			}else {
				System.out.println("이름 " + name +"학생 의 로우(레코드) 수정에 실패했습니다. ");
			}
			
		} catch (SQLException e) {
			System.err.println("오라클 쿼리문 조회실패ㅜㅜ");
			System.exit(0);
		}
	}
	
	public static int flagIn() {
		Scanner sc = new Scanner(System.in);
		System.out.println("수정에 사용할 기준을 선택해주세요! (아이디는  1, 이름은 2를 입력해주세요~)");
		int flag = sc.nextInt();
		return flag;
	}

	public static void main(String[] args) {
		
		
		Scanner sc = new Scanner(System.in);
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버 등록성공");			
		}
		catch(ClassNotFoundException e) 
		{
			System.out.println("드라이버 등록실패"); 
		}
		
		Connection con = null;
		
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
		String user ="";
		String pass = "";
		
		try {
			con = DriverManager.getConnection(url,user,pass);
			System.out.println("오라클에 로그인(접속) 성공!!");
		}catch(SQLException e)
		{
			System.err.println("오라클에 로그인(접속) 실패 ㅜㅜ");
			System.exit(0);
		}
		
		
		
		PreparedStatement ps = null;
		String sql ="";
		int flag = 0;
		boolean check = true;
		
		while(true) {
			flag = flagIn(); //원하는 로직 입력하기
			if(flag == 1) {
				while(check) {
					System.out.println("수정하고자 하는 직원의 아이디를 입력해주세요~");
					int id = sc.nextInt();
					//select로 체크
					try {
						sql = "select id from testmember";
						ps = con.prepareStatement(sql);  		
						ResultSet rs = ps.executeQuery();
						
						while(rs.next()) {
							if(rs.getInt(1)==id) {
								select(url,user,pass,id);
								update(url, user, pass, id);		//수정완료
								check = false;
								break;
							}
						}
						if(check) {
							System.out.println("아이디가 존재하지 않습니다...");	//수정실패
						}
					}
					catch(SQLException e)
					{
						System.err.println("오라클 쿼리문 조회실패ㅜㅜ");
						System.exit(0);
					}
				}
			break;

			}else if(flag == 2) {
				while(check) {
					System.out.println("수정하고자 하는 학생의 이름을 입력해주세요~");
					String name = sc.next();
					try {
						sql = "select name from testmember ";
						ps = con.prepareStatement(sql);  		
						ResultSet rs = ps.executeQuery();
						
						while(rs.next()) {
							if(rs.getString(1).equals(name)) {
								select(url,user,pass,name);
								update(url, user, pass, name);	//수정완료
								check = false;
								break;
							}
						}
						if(check) {
							System.out.println("이름이 존재하지 않습니다...");	//수정실패
						}
					}
					catch(SQLException e)
					{
						System.err.println("오라클 쿼리문 조회실패ㅜㅜ");
						System.exit(0);
					}
				}
				break;
				
			}else {
				System.out.println("아이디는 1, 이름은 2입니다. 다시 입력해주세요...");
			}
		}
	}

'jsp,spring,php' 카테고리의 다른 글

커뮤니티 사이트 개발 소스코드  (0) 2022.02.07
jdbc)테이블 내용 삭제  (0) 2020.04.17
jdbc)테이블 내용 삽입 예제  (0) 2020.04.17
jdbc)테이블 조회 예제  (0) 2020.04.17
jsp)로그인 서비스 구현 - 2  (0) 2020.01.03