JDBC(Java Data Base Connectivity) 프로그램 순서 7단계
1단계 :드라이버 로딩(mysql 드라이버 로딩)
2단계 :Connection객체로 DB연결
1)ip 2)port번호 3)db접속id 4)db접속비번 5)db명(sid,service name)
** 해설
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
getConnection 메서드
getConnection 메서드는 DriverManger 클래스 안에 선언된 static한 메서드이다. (정적메서드)
static한 변수, 메서드는 객체 생성없이 클래스명.메서드명(); 의 형식으로 호출할 수 있다.
따라서 DriverManger 클래스를 통한 객체 생성없이 바로 DriverManger.getConnection(...); 형식으로 메서드를 호출했다.
getConnection 메서드는 3개의 입력값을 받는다고 선언되어 있다.
입력값은 3개지만, 입력값에는 총 6개의 정보가 담겨있다.
①dbms 종류 (MySQL) ②IP ③PORT 번호 ④ DB명 ⑤DBid ⑥DBPW
메서드를 호출하면, (6개의 정보가 담겨있는) 입력값 3개를 받아 정상인지 비정상인지 판단한다.
- 정상이라면 Connection 클래스를 통해 생성한 Connection 타입의 객체의 주소값을 메서드 호출한 곳으로 리턴해준다.
- 비정상이라면 에러를 발생한다.
3단계 :Query실행을 위한 준비
( statement 또는 PreparedStatement객체생성)
** 해설
pstmt = conn.prepareStatement("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)");
preparedStatement 메서드는 Connection 클래스 안에 선언된 메서드이다.
'2단계 : Connection 객체로 DB연결' 에서 만들었던
conn 객체참조변수(Connection 객체의 주소값이 담겨있는)를 통해prepareStatement(...); 메서드를 호출한다.
prepareStatement 메서드
prepareStatement메서드의 입력값으론 문자열 타입의 sql 쿼리문장을 작성해준다.
(prepareStatement 메서드의 리턴타입은 PreparedStatement이기 때문에, 최소한 메서드 실행 시 내부에서는 PreparedStatement 타입의 객체가 만들어질 것!)
입력값으로 쿼리문을 넣어주면 메서드 내부에서는 PreparedStatement 클래스를 통해 생성한 PreparedStatement 객체의 주소값을 메서드 호출한 곳으로 리턴해준다.
그 후 리턴된 값을 PreparedStatement 타입의 pstmt라는 변수에 담아준다.
** 해설
pstmt = conn.prepareStatement("INSERT INTO tb_member VALUES (?, ?, ?, ?, ?)");
pstmt.setString(1, m_id);
pstmt.setString(2, m_pw);
pstmt.setString(3, m_level);
pstmt.setString(4, m_name);
pstmt.setString(5, m_email);
PreparedStatement 클래스를 통해 생성한 객체의 주소값이 담겨있는 pstmt 객체참조변수로 setString 메서드를 호출한다.
setString 메서드는 입력값으로 (int parameterIndex, String x)를 받는다고 선언되어있다.
첫 번째 매개변수 parameterIndex는 ?의 index번호를 의미하고, 두 번째 매개변수 x는 ? 자리에 입력할 값을 의미한다.
ex)
pstmt.setString(1, m_id); 는
첫 번째 ? 자리에
m_id의 값(insert_form 안에 입력 후 post방식으로 보냄 -> insert_action.jsp에서 request.getPrameter("m_id");로 받은 값)을
입력하겠다는 의미이다.
4단계 :Query실행
PreparedStatement 클래스를 통해 생성한 객체의 주소값이 담겨있는 pstmt 객체참조변수로 executeUpdate 메서드를 호출한다.
select를 제외하고, 쿼리 실행하기 위해서는 executeUpdate 메서드를 사용하면 된다.
5단계 :Query실행결과 사용
(insert,update,delete의 경우 생략 가능단계)
executeUpdate 메서드의 리턴 타입은 int로,
쿼리 실행 결과를 사용하려면 int타입의 변수(result)에 쿼리 실행 결과를 담아 사용하면 된다.
6단계 :statement 또는 PreparedStatement객체 종료(close())
7단계 :DB연결(Connection 객체) 종료(close())
0단계 : 작업공간 폴더 생성
새로운 workspace mysqlwork41 생성 및 실행
war file import
minsert폴더 하위에는
m_insert_action.jsp : 회원가입화면
m_insert_form.jsp : 회원가입처리
이 있다.
m_insert_Action.jsp 파일을 열어 dev39.. 로 되어있는 것을 dev41.. 로 수정
우리가 직전에 생성했던 DB명과 생성했던 사용자계정으로!
'기록(노트)' 카테고리의 다른 글
자바스크립트:함수 객체 생성자함수까지 실습 (0) | 2023.04.06 |
---|---|
데이터베이스 쿼리 실행 할때 처리 과정 (0) | 2023.04.04 |
자바스크립트 함수 (0) | 2023.04.03 |
자바스크립트 var,let.const의 차이 변수선언 및 할당/실습2 (0) | 2023.03.30 |
데이터베이스(DB)/ My SQL: 설치/JDBC(Java Data Base Connectivity) 프로그램 순서 7단계 (0) | 2023.03.30 |