웹개발 교육/Java

[39일] JDBC (7) - 변수를 이용한 테이블 행 수정

ewok 2022. 9. 21. 17:51

앞에서 행을 수정하는 것도 해봤고, 변수를 이용해 행을 추가하는 것도 해보았다.

그러면 변수를 이용해 행을 수정하는 것도 할 수 있을 것이다.

 

package jdbc0921;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Test06_quiz {

	public static void main(String[] args) {
		// 문제) sno=42 행의 데이터를 아래의 내용으로 수정하시오
		int sno=42;
		String uname="JSPark";
		int kor=90, eng=85, mat=100;
		int tot=(kor+eng+mat);
		int aver=tot/3;
		String addr="Suwon";
		
		try {
			String url = "jdbc:oracle:thin:@localhost:1521:xe";  //127.0.0.1
			String user = "system";
			String password = "1234";
			String driver = "oracle.jdbc.driver.OracleDriver";  //ojdbc8.jar
			Class.forName(driver);
			Connection con = DriverManager.getConnection(url, user, password);			
			System.out.println("오라클 DB 서버 연결 성공!!");
			
			StringBuilder sql = new StringBuilder();
			sql.append(" UPDATE sungjuk ");
			//sql.append(" SET uname=?, kor=?, eng=?, mat=?, tot=?, aver=?, addr=? ");			
			//이렇게 하나씩 쓰는게 나중에 편집하기 더 좋다
			sql.append(" SET uname=? ");
			sql.append(" ,kor=? ");
			sql.append(" ,eng=? ");
			sql.append(" ,mat=? ");
			sql.append(" ,tot=? ");
			sql.append(" ,aver=? ");
			sql.append(" ,addr=? ");
			sql.append(" ,wdate=sysdate ");
			sql.append(" WHERE sno=? ");
			
			PreparedStatement pstmt = con.prepareStatement(sql.toString());
			pstmt.setString(1, uname);
			pstmt.setInt(2, kor);
			pstmt.setInt(3, eng);
			pstmt.setInt(4, mat);
			pstmt.setInt(5, tot);
			pstmt.setInt(6, aver);
			pstmt.setString(7, addr);
			pstmt.setInt(8, sno);
			
			int cnt = pstmt.executeUpdate();
			if(cnt==0) {
				System.out.println("행 수정 실패!!");
			} else {
				System.out.println("행 수정 성공~~");
			}//if end
			
			pstmt.close();
			con.close();

		} catch (Exception e) {
			System.out.println("실패 : " + e);
		}//end
        
	}//main() end
}//class end